MySQL数据库中SQL语句的基本使用(一)

来源:互联网 发布:java null instanceof 编辑:程序博客网 时间:2024/04/30 06:47

SQL语言的概述

SQL全称为:Structure Query Language(结构化查询语言),SQL语言为关系型数据库的语言,各大关系型数据库都支持SQL语言。SQL语言主要分为DDL(数据定义语言)、DML(数据操作语言)、DQL(数据查询语言)这几个部分。

DDL(数据定义语言)

DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、列、表等。DDL的关键字主要为CREATE 、ALTER、 DROP。

1.创建数据库

创建数据库使用关键字create,基本语法为

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name    [(create_definition,...)]    [table_options] [select_statement]

例如:创建一个名字为db1的数据库的语句为

create database db1;

注意:语句结尾一定加分号

2. 查询数据库的定义信息

查询数据库的定义信息关键字为show,例如查看数据库服务器上的所有数据库:

show databases;

查看之前创建的数据库db1

show create database db1;

3.修改数据库

修改数据库使用的关键字为alter,基本语法如下:

ALTER {DATABASE | SCHEMA} [db_name]    alter_specification [, alter_specification] ...alter_specification:    [DEFAULT] CHARACTER SET charset_name  | [DEFAULT] COLLATE collation_name

例如:修改数据库的编码为utf8

alter database db1 character utf8;

4.删除数据库

删除数据库的关键字为drop,基本语法如下:

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

例如:删除db1数据库

drop database db1;

5.创建数据表

创建数据表的关键字和创建数据库的关键字相同也是create。创建数据表的语法基本如下:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name    [(create_definition,...)]    [table_options] [select_statement]或:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name    [(] LIKE old_tbl_name [)];

在举例子创建数据表之前先介绍以下MySQL中常用的基本数据类型,在MySQL数据库中分为3种类型:

  1. 数值类型:
    int: 整型数据
    float: 单精度浮点类型,float(M,D)M是小数纵位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。
    double: 双精度浮点型 ,例如double(4,2)表示最多4位,其中必须有2位小数。
  2. 时间类型
    date:日期类型,格式为:yyyy-MM-dd
    time:时间类型,格式为:hh:mm:ss
    timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss
    datetime:日期时间类型 yyyy-MM-dd hh:mm:ss
  3. 字符串类型
    text:字符串类型,TEXT[(M)] M为字符串长度
    char:固定长度字符串类型 ,CHAR[(M)]M为字符串长度 。固定长度字符串,当保存时在右侧填充空格以达到指定的长度。M表示列长度。M的范围是0到255个字符。
    varchar:可变长度字符串类型。VARCHAR[(M)],变长字符串。M 表示最大列长度。M的范围是0到65,535。(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定。最大有效长度是65,532字节)。

介绍完数据类型接下来是创建数据表的例子:

create table student (    id int,    name varchar(100),    birthday date,    age float(4,1),    resume text);

切换数据库的命令为:

use 数据库名称;

查看某个数据库下的全部数据表:

show tables;

查看某个数据表中的字段:

desc 数据表名;

6.修改数据表

修改数据表的关键字为alter基本语法如下:

ALTER [IGNORE] TABLE tbl_name    alter_specification [, alter_specification] ...alter_specification:    ADD [COLUMN] column_definition [FIRST | AFTER col_name ]  | ADD [COLUMN] (column_definition,...)  | ADD INDEX [index_name] [index_type] (index_col_name,...)  | ADD [CONSTRAINT [symbol]]        PRIMARY KEY [index_type] (index_col_name,...)  | ADD [CONSTRAINT [symbol]]        UNIQUE [index_name] [index_type] (index_col_name,...)  | ADD [FULLTEXT|SPATIAL] [index_name] (index_col_name,...)  | ADD [CONSTRAINT [symbol]]        FOREIGN KEY [index_name] (index_col_name,...)        [reference_definition]  | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}  | CHANGE [COLUMN] old_col_name column_definition        [FIRST|AFTER col_name]  | MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]  | DROP [COLUMN] col_name  | DROP PRIMARY KEY  | DROP INDEX index_name  | DROP FOREIGN KEY fk_symbol  | DISABLE KEYS  | ENABLE KEYS  | RENAME [TO] new_tbl_name  | ORDER BY col_name  | CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]  | [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name]  | DISCARD TABLESPACE  | IMPORT TABLESPACE  | table_options  | partition_options  | ADD PARTITION partition_definition  | DROP PARTITION partition_names  | COALESCE PARTITION number  | REORGANIZE PARTITION partition_names INTO (partition_definitions)  | ANALYZE PARTITION partition_names  | CHECK PARTITION partition_names  | OPTIMIZE PARTITION partition_names  | REBUILD PARTITION partition_names  | REPAIR PARTITION partition_names

从基本语法可以看出 alter table 可以改变原有数据表的结构 。例如,增加或删除列,更改列名字,修改列的类型等等。
下面举几个例子:
在student表中添加一个image列:

alter table student add image blob;

删除image列,一次只能删除一列:

alter table student drop image;

修改name字段的长度:

alter table student modify name varchar(80);

7.删除数据表

删除数据表的关键字为drop,基本语法为:

DROP [TEMPORARY] TABLE [IF EXISTS]    tbl_name [, tbl_name] ...    [RESTRICT | CASCADE]

例如 删除student数据表:

drop table student;
原创粉丝点击