MySQL约束之创建约束

时间:2022-09-21 13:04:19

约束,顾名思义是对表的一种限制,其作用为保证表的完整性,唯一性。mysql表约束和列约束包括以下5种(NOT NULL和DEFAULT只有列约束),如表1

表1

PRIMARY KEY 主键约束 不能重复,不能为空
NOT NULL 非空约束 不能为空
DEFAULT 默认约束 插入数据时此列没有值插入,则使用默认值
UNIQUE KEY 唯一约束 此列不能有重复值
FROEIGN KEY 外键约束 约束表之间的关系


创建具有主键约束,非空约束,默认约束和唯一约束的数据表,如图1:

MySQL约束之创建约束

图1

如我们插入一条数据,如图2:

MySQL约束之创建约束

图2

1.主键约束:

先测试主键能否重复,如图3,结果为不能重复:

MySQL约束之创建约束

图3

测试主键能否为空,如图4,插入成功:

MySQL约束之创建约束MySQL约束之创建约束

图4

为什么空值能插入成功呢?因为设置主键时设置了AUTO_INCREMENT,这代表在插入数据语句中,主键值写为default或者null时,主键会自增,否则这样操作会报错的。

2.非空约束,如图5,插入失败:

MySQL约束之创建约束

图5

3.默认约束,如图6,插入成功:

MySQL约束之创建约束

图6

4.唯一约束,如图7,插入失败:

MySQL约束之创建约束

图7

在经过以上操作后,表内容如图8所示:

MySQL约束之创建约束

图8

5.创建外键约束:

测试外键约束需要再创建一张表,如图9.

MySQL约束之创建约束

图9

通过语句SHOW CREATE TABLE tb;可以查看到外键创建成功,如图10。

MySQL约束之创建约束

图10