数据库建表时要考虑各种关系,必须要熟知以下约束关系
约束类型
往表中插入记录的时候,遵循的一定的规则, 称为约束,作用保证数据的完整性和一致性。
常用的约束条件如下图:
说明:
- 约束: Constraint,是定义在表上的一种强制规则。
- 当为某个表定义约束后,对该表做的所有SQL操作都必须满足约束的规则要求,否则操作将失败
1.主键约束——PRIMARY KEY
- 表中的一列或者多列,设置主键约束,表示该列的值,在该表中是唯一的。
- 主键的值不能为NULL,而且必须唯一。
语法:
字段名 PRIMARY KEY AUTO_INREMENT
其中:AUTO_INREMENT表示主键自增(可选)
2.唯一性约束 ——UNIQUE
-
UNIQUE:表示该字段的值在该表中是唯一的,但是取值为NULL
-
表中的多个字段都可以设置唯一性约束
-
语法 :
字段名 UNIQUE
3.非空约束——NOT NULL
- 该字段的值不能为null
- 语法:
字段名 NOT NULL
4.默认值——DEFUALT
- 如果表中插入记录时,没有给该字段赋值,则使用默认值。
- 语法:
字段名 DEFAULT 值
5.外键约束——FOREIGN KEY
- 表中的某个字段,是取自另外一个表中的字段的值,形成的外键约束
两个表中关联字段的数据类型要一致。 - 外键约束的策略:
- restrict 、noaction 对于已经形成外键约束的记录,被引用表中的关联的记录不允许被删除。
- set null 对于已经形成外键约束的记录,被引用的表中的记录删除后,主表中关联记录的对应的字段值被置为null。
- cascade 对于已经形成外键约束的记录,如果删除或者更新被引用表中的记录,主表的关联记录也会被删除或者更新。
- 外键举例:
6.检查性约束——CHECK
mysql不支持这种约束,一般通过枚举或者触发器来实现。
看官,如果觉得这篇文章还不错,点个赞加个关注再走呗 ^ - ^
MySql系列文章: