1. 约束保证数据的完整性和一致性
2. 约束分为表级约束和列级约束。
3. 约束类型包括:
not null(非空约束)
primary key(主键约束)
unique key(唯一约束)
default(默认约束)
foreign key(外检约束)
- 外键约束: foreign key
1、保持数据一致性,完整性
2、实现一对一或一对多关系。
- 外键约束的要求:
1、父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
2、数据表的存储引擎只能为InnoDB.
3、外键列和参照列必须具有相似的数据类型。其中数字的长度或知否有符号位必须相同;而字符的长度则可以不同。
4、外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。
- 编辑数据表的默认存储引擎
mysql配置文件:
default-storage-engine=INNODB
创建主表:
创建子表:
外键约束的参照操作:
1、cascade:从父表删除或更新且自动删除 或更新子表中匹配的行
2、set null:从父表删除或更新行,并设置子表中的外键列为null。如果使用该选项,必须保证子表列没有指定not null
3、restrict:拒绝对父表的删除或更新操作。
4、no action:标准sql的关键字,在mysql 中 与restrict相同
创建如下表:
指,在父表中删除或更新相应的行 也会更新字表中的记录。
父表中的数据如下:
子表中的数据如下:
现在删除一条记录:
现在只剩下一条记录,现在看看子表中的数据,发现,子表中对应的数据也没了。