1.约束保证数据的完整性和一致性。
2.约束分为表级约束(2个或2个以上字段)[只能在列定义后声明]和列级约束(字段数目一个)[可在定义时声明,也可在列定义后声明]。
3.功能划分:not null(非空约束) primary key(主键约束) unique key(唯一约束)
default (默认约束) foreign key(外键约束)
4.外键约束:保持数据一致性,完整性,实现一对一或一对多关系。
要求:(1)父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
(2)数据表的存储引擎只能为InnoDB。
(3)外键列和参照列必须具有相似数据类型,其中数字长度或是否有符号位必须相同,而字符的长度则可不同。
(4)创建索引,若外键列不存在索引的话,MySQL将自动创建
子表:具有外键的表 父表:字表参照表 外键列:具有加过foreign的列。
5.外键约束的参照操作:(1)cascade:从父表删除或更新子表中匹配的行。
(2)set null:从父表删除或更新行,并设置子表的外键列为null,如果使用该选项,必须保证子表列没有指定not null。
(3)restrict:拒绝对父表的删除或更新操作。
(4)no action:标准SQL的关键字,在MySQL中与restrict相同。