MySQL中只要支持六种完整性约束,如表所示:其中check约束是MySQL8中提供的支持。
约束条件 | 约束描述 |
primary key | 主键约束,约束的值可唯一的标识对应的记录 |
not null | 非空字段的值不能为空 |
unique | 唯一约束,约束1字段的值是惟一的 |
check | 检查约束,限制某个字段的值取值范围 |
default | 默认值约束,约束字段的值自动递增 |
auto_increment | 自动增加位数,约束字段的值自动递增 |
foreign key | 外键约束,约束与表之间的关系 |
约束从作用上可以分为两类:
(1)列级约束:是对某一特定列的约束
(2)表级约束:用于对多个列一起的约束
列级约束有六种:主键Primary key、外键foreign key 、唯一 unique、检查 checck 、默认default 、非空/空值 not null/ null
表级约束有四种:主键、外键、唯一、检查
表级约束和列级约束的区别:
(1)列级约束:只能应用于一列上。
表级约束:可以应用于一列上,也可以应用在一个表中的多个列上。
(2)列级约束:包含在列定义中,直接跟在该列的其它定义之后 ,用空格分隔;不必指定列名
表级约束:与列定义相互独立,不包含在列定义中;与定义用‘,’分隔;必须指出要约束的列的名称
举个栗子:
1、表级约束
标红框的叫表级约束。
2、表级约束
标红框的叫表级约束。另外非空和默认只能用列级约束。