MySQL基础篇 - 约束
01 概述
【1】概念:约束就是作用在表中字段上的规则,用于限制存储在表中的数据。
【2】作用:保证数据库中数据的正确性,有效性和完整性。
【3】分类:
① 非空约束not null:用于限制字段的值不能为null
② 唯一约束unique:保证字段所有数据都是唯一的
③ 主键约束primary key:主键是一行数据的唯一标识,要求非空且唯一
注意:① 如果插入数据没有成功,但由于已经申请到了主键,所以下一个插入数据的主键值可能与前面不连续。
② MySQL中独有的主键自增:auto_increment
④ 默认约束default:保存数据时,如果未指定该字段的值,则采用默认值
⑤ 检查约束check:保证字段值满足某一条件,注意(8.0.16版本之后才出现这个约束条件,本电脑的版本用不了)
⑥ 外键约束foreign key:用来让两张表的数据之间建立连接,保证数据的一致性和完整性
【说明】:约束是作用在表中字段上的,可以在创建表/修改表的时候添加约束。
【普通约束的格式】:字段名 字段类型 约束条件(ps:约束条件之间不要加逗号) comment 'xx';
02 约束演示
【SQL语句添加约束】:
【图形化界面添加约束】:
03 外键约束
【1】具有外键的表称为子表,与外键相关联的表称为父表。
【2】子表外键里的内容对应着父表的主键内容,如果没有建立外键关联,是无法保证数据的一致性和完整性的,例如:删除父表中的内容,子表中的数据是不会发生变化的;如果是建立了外键关联,则无法去删除父表中的数据。
【3】添加/删除外键的语法:
① 关键字:constraint约束,references参考,谈及
04 外键删除更新行为
【1】no action(默认行为):在父表中删除/更新对应记录时,首先检查是否有外键关联,如果有则不允许操作
【2】restrict:同上
【3】caseade:在父表中删除/更新对应记录时,首先检查是否有外键关联,如果有则也删除/更新子表中的记录
【4】set null:在父表中删除/更新对应记录时,首先检查是否有外键关联,如果有则子表中该外键值设为null(外键值一定可以取null值)
【设置外键删除更新行为】:在添加外键的语句后面加上 on update xx on delete xx
【图形化界面设置外键的删除更新行为】: