数据库基本语法

创建数据库

1
2
3
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET] <字符集名>
|[DEFAULT] COLLATE <校对规则名>]

语法说明

[ ] 内为可选项,{ } 为二选一。

  • 数据库名:数据库名字
  • IF NOT EXISTS:建数据库前判断有无创建的数据库,只有在该数据库不存在的时候才进行 CREATE DATABASE 创建操作。
  • DEFAULT:指定默认值
  • CHARACTER SET:指定数据库字符集
  • COLLATE:指定字符集的校对规则

最简格式

1
CREATE DATABASE <数据库名>

打开数据库

创建了数据库之后,使用USE命令可指定当前数据库。

1
USE <数据库名>
在使用`CREATE

DATABASE`语句创建数据库之后,该数据库不会自动成为当前数据库,需要使用这条USE语句来指定。

修改数据库

1
2
3
ALTER {DATABASE|SCHEMA} <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>
|[DEFAULT] COLLATE <校对规则名>]

语法说明

[ ] 内为可选项,{ } 为二选一。

  • DEFAULT:指定默认值
  • CHARACTER SET:指定数据库字符集
  • COLLATE:指定字符集的校对规则

删除数据库

用于删除已创建的数据库

1
DROP DATABASE [IF EXISTS] <数据库名>

语法说明

  • 数据库名:要删除的数据库名
  • IF EXISTS:避免删除不存在的数据库时,出现的MySQL错误信息。

显示数据库

1
SHOW DATABASES

数据表基本语法

创建数据表

创建表

1
2
3
CREATE TABLE [IF NOT EXISTS] <表名>
(<列名> <数据类型> [NOT NULL|NULL] [DEFAULT 列默认值]…)
ENGINE=<存储引擎>
语法说明
  • IF NOT EXISTS:在建表之前判断,只有在该表不存在时才执行创建表操作。此选项可避免出现表已经存在无法再新建的错误。
  • 表名:要创建表的表名。必须符合标志符规则,若有 MySQL 保留字,必须用单引号括住。
  • 列名:表中列的名字。必须符合标志符规则,长度不能超过64个字符,具有唯一性,若有 MySQL 保留字,必须用单引号括住。
  • 数据类型:列的数据类型,有的数据类型需要指明长度n,并用括号括起来。
  • NOT NULL|NULL:指定该列是否允许为空。默认为 NULL
  • DEFAULT 列默认值:为列指定默认值,默认值必须为一个常数,其中,BOLB 和 TEXT 列不能被赋予默认值。如果没有为列指定默认值,MySQL 会自动地分配一个。 若列可以取 NULL 值,默认值就是 NULL。如果列被声明为 NOT NULL,默认值取决于列类型。
  • ENGINE=存储引擎:MySQL 支持数个存储引擎作为对不同表的类型的处理器。使用时要用具体的存储引擎名称代替代码中的存储引擎,如 ENGINE=InnoDB。

管理数据表

修改数据表

修改表名
1
ALTER TABLE <旧表名> RENAME [TO] <新表名>

示例:

1
2
3
use my_sql;

alter table tb_RENAME1 rename tb_RENAME2;
修改字段的数据类型
1
ALTER TABLE <表名> MODIFY <字段名> <数据类型>

示例:

1
alter table tb_RENAME2 modify name varchar(30);
修改字段名
1
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>

其中,“旧字段名”指修改前的字段名;“新字段名”指修改后的字段名;“新数据类型”指修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样即可,但数据类型不能为空。

示例:

1
alter table tb_RENAME2 change loc location VARCHAR(50);
添加字段
1
ALTER TABLE<表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在字段名];

“ FIRST”为可选参数,其作用是将新添加的字段设置为表的第一个字段;
“AFTER”为可选参数,其作用是将新添加的字段添加到指定的“已存在字段名”的后面。

示例
  • 添加无完整性约束性条件的字段
    在数据表 tb_RENAME2 中添加一个没有完整性约束的 INT 类型的字段 managerId
    1
    alter table tb_RENAME2 add managerId int(10);
  • 添加有完整性约束性条件的字段
    在数据表 tb_RENAME2 中添加一个不能为空的 VARCHAR(12)类型的字段 column1
    1
    alter table tb_RENAME2 add column1 varchar(12) not null;
  • 在表的第一列添加一个字段
    在数据表 tb_RENAME2 中添加一个int类型的字段 column2
    1
    alter table tb_RANAME2 add column2 int(10) first;
  • 在表的指定列之后添加一个字段
    在数据表tb_RENAME2中name列后添加一个int类型的字段column3
    1
    alter table tb_RENAME2 add column3 int(10) after name;
删除字段
1
ALER TABLE <表名> DROP <字段名>
修改字段的排列位置
1
ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER <字段2>;

“字段1”指要修改位置的字段,“数据类型”指“字段1”的数据类型,
“ FIRST”为可选参数,指将“字段1”修改为表的第一个字段,
“ AFTER字段2”指将“字段1”插入到“字段2”后面。

示例
  • 修改字段为表的第一个字段
    将数据表tb_RENAME2中的column1字段修改为表的第一个字段
    1
    alter table tb_RENAME2 modify column1 varchar(12) first;
  • 修改字段到表的指定列之后
    将数据表tb_RENAME2中的column1字段插入到location字段后面
    1
    alter table tb_RENAME2 modify column1 varchar(12) after location;
更改表的存储引擎

MySQL支持的存储引擎

引擎名 是否支持
FEDERATED
MRG MYISAM
MYISAM
BLACKHOLE
CSV
MEMORY
ARCHIVE
InnoDB
PERFORMANCE SCHEMA 默认
1
ALTER TABLE <表名> engine=<新存储引擎名>

示例:
将数据表tb_RENAME2的存储引擎修改为MyISAM

1
alter table tb_RENAME2 engine=MyISAM;
删除表的外键约束

对于数据库中定义的外键,如果不再需要,可以将其删除。外键一旦删除,就会解除主表和从表间的关联关系。

1
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>

“外键约束名”指在定义表时CONSTRAINT关键字后面的参数