约束,顾名思义是对表的一种限制,其作用为保证表的完整性,唯一性。mysql表约束和列约束包括以下5种(NOT NULL和DEFAULT只有列约束),如表1
表1
PRIMARY KEY | 主键约束 | 不能重复,不能为空 |
NOT NULL | 非空约束 | 不能为空 |
DEFAULT | 默认约束 | 插入数据时此列没有值插入,则使用默认值 |
UNIQUE KEY | 唯一约束 | 此列不能有重复值 |
FROEIGN KEY | 外键约束 | 约束表之间的关系 |
创建具有主键约束,非空约束,默认约束和唯一约束的数据表,如图1:
图1
如我们插入一条数据,如图2:
图2
1.主键约束:
先测试主键能否重复,如图3,结果为不能重复:
图3
测试主键能否为空,如图4,插入成功:
图4
为什么空值能插入成功呢?因为设置主键时设置了AUTO_INCREMENT,这代表在插入数据语句中,主键值写为default或者null时,主键会自增,否则这样操作会报错的。
2.非空约束,如图5,插入失败:
图5
3.默认约束,如图6,插入成功:
图6
4.唯一约束,如图7,插入失败:
图7
在经过以上操作后,表内容如图8所示:
图8
5.创建外键约束:
测试外键约束需要再创建一张表,如图9.
图9
通过语句SHOW CREATE TABLE tb;可以查看到外键创建成功,如图10。
图10