数据库基本语法
创建数据库
1 2 3
| CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] <数据库名> [[DEFAULT] CHARACTER SET] <字符集名> |[DEFAULT] COLLATE <校对规则名>]
|
语法说明
[ ]
内为可选项,{ }
为二选一。
- 数据库名:数据库名字
- IF NOT EXISTS:建数据库前判断有无创建的数据库,只有在该数据库不存在的时候才进行
CREATE DATABASE
创建操作。
- DEFAULT:指定默认值
- CHARACTER SET:指定数据库字符集
- COLLATE:指定字符集的校对规则
最简格式
打开数据库
创建了数据库之后,使用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 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 类型的字段 managerId1
| alter table tb_RENAME2 add managerId int(10);
|
- 添加有完整性约束性条件的字段
在数据表 tb_RENAME2 中添加一个不能为空的 VARCHAR(12)类型的字段 column11
| alter table tb_RENAME2 add column1 varchar(12) not null;
|
- 在表的第一列添加一个字段
在数据表 tb_RENAME2 中添加一个int类型的字段 column21
| alter table tb_RANAME2 add column2 int(10) first;
|
- 在表的指定列之后添加一个字段
在数据表tb_RENAME2中name列后添加一个int类型的字段column31
| 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关键字后面的参数