一、表级约束和列级约束
表级约束:对2个或2个以上数据列建立的约束。
列级约束:对1个数据列建立的约束。
通常,列级约束使用多。
二、约束分类
1:主键约束 PRIMARY KEY
每张数据表只能存在一个主键
主键保证记录的唯一性
2:唯一约束 UNIQUE KEY
主键约束一张数据表只能有一个
唯一约束一张数据表可以有多个
都是为了保证记录的唯一性
3:默认约束 DEFAULT
当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
4:外键约束:保持数据一致性、完整性。实现一对一或一对多的关系。
- 要求:
1:父表和子表必须具有相同的存储引擎:,且存储引擎只能为InnoDB.
2:外键列(pid)和参照列(id)必须具有相似的数据类型。其中数字类型的长度和是否有符号位必须相同,而字符的长度可以不同。
3:外键列和参照列必须创建索引,外键列(pid)没有索引,自动创建索引,参照列(id)没有索引不会自动创建,必须手动创建索引。
外键约束的参照操作
外键约束参照操作有四种,所谓参照操作,就是子表和父表相互参照的一种操作关系。
1:CASCADE 从父表删除或更新则自动删除或更新子表中的内容。
2:SET NULL 从父表删除或更新行,则自动设置子表的对应外键列为NULL。
3:RESTRICT 或 NO ACTION 拒绝对父表的删除或更新操作。(即子表中的内容在父表中有对应的数据时,不允许对父表中对应的行进行删除或更新操作)
三、删除约束
1:删除主键约束
ALTER TABLE tablename DROP PRIMARYKEY
2:删除唯一约束
ALTER TABLE tablename DROP INDEX 约束名称
查看约束名称:SHOW INDEX FROM tablename
3:删除外键约束
ALTER TABLE tablename DROP FOREIGN KEY 约束名称
查看外键约束名称
SHOW CREATE TABLE tablename\G;
4:删除默认约束
ALTER TABLE tablename ALTER 字段名称 DROP DEFAULT