本文最后更新于:August 13, 2022 pm
MySQL是一个关系型数据库管理系统。简单复习数据库MySQL知识。
目录
1.主键约束
主键的取值不能为 NULL ,且取值唯一,不能重复。用关键字 primary key 标识,可以分为单一主键和复合主键,每一个数据表最多只能有一个主键约束。可以在创建表时创建,也可以对已存在的表添加主键。
1.1 创建主键
1.1 创建表时创建主键
1.1.1 单一主键
在表定义语句时,在其后面加上关键字 primary key。
1.1.2 复合主键
在表定义语句最后,加上 primary key(字段名1,字段名2,····字段名n)。
| primary key (字段名1,字段名2,···,字段名n)
|
1.2 为已存在表创建主键
1.2.1 单一主键
| alter table 表名 modify 字段名 数据类型 primary key;
|
1.2.2 复合主键
| alter table 表名 add primary key(字段名1,字段名2,···字段名n);
|
1.2 删除主键
| alter table 表名 drop primary key;
|
2.外键约束
2.1 创建外键
2.1.1 创建表时创建外键
| foreign key(索引列名) references 表名(索引列名)
|
在创建外键约束时,如果引用父表的参考字段没有设置主键或唯一键约束,则创建外键将会失败。
2.1.2 为已存在的表添加外键
| alter table 表名 add [constraint 约束名] foreign key(字段名) references 父表(字段名);
|
constraint 为外键约束名,如果省略,系统自动会为外键定义一个外键名。
2.1.3 创建外键注意点
- 在创建表时创建外键,必须先创建父表,再创建子表。
- 必须为父表定义主键,父表名后面指定列名(或列名的组合)。这个列(或列组合)必须是这个表的主键或唯一键。
- 外键中的列数据类型必须和被参照表的主键中的数据类型一致或兼容,且含义一样。
2.2 删除外键
| alter table 子表名 drop foreign key 外键名;
|
如果创建外键时,没有指定外键名,则此处的外键名是系统指定的外键名。
3.唯一性约束
3.1 创建唯一性约束
3.1.1 创建表时创建唯一性约束
- 定义成列级完整性约束
- 定义成表级完整性约束
3.1.2 为已存在的表添加唯一性约束
- 创建单一字段的唯一性约束
| alter table 表名 modify 字段名 数据类型 unique;
|
- 创建多字段的唯一性约束,也可以用来创建单一字段的唯一性约束条件
| alter table 表名 add [constraint 约束名] unique(字段名1,字段名2,···);
|
3.2 删除唯一性约束
| alter table 表名 drop index 唯一性约束名;
|
3.3 查看唯一性约束
查看唯一性约束除可以使用 describe 命令外,还可以使用 show create table 表名;或者 show index from 表名; 来查看。
| show create table 表名; show index from 表名;
|
4.非空约束
非空约束是指字段的值不能为 NULL ,在 MySQL 中,非空约束是通过 NOT NULL 定义的。
4.1 创建非空约束
4.1.1 创建表时添加非空约束
4.1.2 为已存在的表添加非空约束
| alter table 表名 modify 字段名 数据类型 not null;
|
4.2 删除非空约束
| alter table 表名 modify 字段名 数据类型;
|
5.检查约束
5.1 创建检查约束
5.1.1 创建表时添加检查约束
5.1.2 为已存在的表添加检查约束
| alter table 表名 add [constraint 约束名] check(表达式);
|
5.2 删除检查约束
| alter table 表名 drop check 检查约束名;
|
6.默认值约束
6.1 创建默认值约束
6.1.1 创建表时添加默认值约束
6.1.2 为已存在的表添加默认值约束
| alter table 表名 modify 字段名 数据类型 default 默认值;
|
6.2 删除默认值约束
| alter table 表名 modify 字段名 数据类型;
|