1.关于约束
(1)约束保证数据的一致性和完整性
(2)约束分为表级约束和列级约束
(3)约束类型包括以下几个
NOT NULL 非空约束
PRIMARY KEY 主键约束
UNIQUE KEY 唯一约束
DEFAULT 默认约束
FOREIGN KEY 外键约束
2.外键约束
(1)FOREIGN KEY
保证数据的一致性,完整性。实现一对一和一对多的关系。
(2)外键约束的要求
a.父表和子表必须使用相同的存储引擎,而且禁止使用临时表;
b.数据表的存储引擎;
c.外键列与参照列必须具有相同的数据类型,其中字的长度或是否有符号位必须相同,而符号的长度则可以不同;
d.外键列与参照列必须建立索引,如果外键列不存在索引的话,MySQL将会自动创建索引。
(3)外键约束的参照操作
a.CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行;
b.SET NULL:从父表删除或更新行,并设置子表的外键列为NULL,如果无法使用该选项,必须保证子表列没有指定NOT NULL;
c.RESTRICT:拒绝父表的删除或更新操作;
d.NO ACTION:标准的SQL关键字,在MySQL中与RESTRICT相同。
3. 表级约束与列级约束
(1)对一个数据列建立起来的约束,称为列级约束;
(2)对多个数据列建立的约束,称为表级约束;
(3)列级约束既可以在列定义是声明,也可以在列定义后声明;
(4)表级约束只能在列定义后声明。
4. 约束小结