MySql中建表时约束条件的总结

数据库建表时要考虑各种关系,必须要熟知以下约束关系

约束类型

往表中插入记录的时候,遵循的一定的规则, 称为约束,作用保证数据的完整性和一致性。
常用的约束条件如下图:
在这里插入图片描述

说明:

  1. 约束: Constraint,是定义在表上的一种强制规则。
  2. 当为某个表定义约束后,对该表做的所有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

  • 表中的某个字段,是取自另外一个表中的字段的值,形成的外键约束
    两个表中关联字段的数据类型要一致。
  • 外键约束的策略:
  1. restrict 、noaction 对于已经形成外键约束的记录,被引用表中的关联的记录不允许被删除。
  2. set null 对于已经形成外键约束的记录,被引用的表中的记录删除后,主表中关联记录的对应的字段值被置为null。
  3. cascade 对于已经形成外键约束的记录,如果删除或者更新被引用表中的记录,主表的关联记录也会被删除或者更新。
  • 外键举例:
    在这里插入图片描述

6.检查性约束——CHECK

mysql不支持这种约束,一般通过枚举或者触发器来实现。

猜你喜欢

转载自blog.csdn.net/qq_45768060/article/details/108584974