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