目录


数据库的约束

什么是约束?

在创建表时设置约束,对于某一列值能填什么内容做出限制,每一列独立设置自己的约束.


not null

  • 指定某列的存储不能为null

【MySQL】—— 数据库的约束 (null、unique、primary key、default、foreign key、check)_外键

此时向 id 列插入空的值会报错.

【MySQL】—— 数据库的约束 (null、unique、primary key、default、foreign key、check)_MySQL_02


unique

  • 保证某列的每行必须有唯一的值

【MySQL】—— 数据库的约束 (null、unique、primary key、default、foreign key、check)_约束_03

如果向 name 这一列插入重复的值会报错.

【MySQL】—— 数据库的约束 (null、unique、primary key、default、foreign key、check)_约束_04

问:

MySQL怎么发现id重复了?

【MySQL】—— 数据库的约束 (null、unique、primary key、default、foreign key、check)_MySQL_05


default

  • 规定给列赋值时的默认值

【MySQL】—— 数据库的约束 (null、unique、primary key、default、foreign key、check)_数据库_06

  1. 给带有默认值的列插入 null 最终结果是什么?

【MySQL】—— 数据库的约束 (null、unique、primary key、default、foreign key、check)_约束_07

结论:

如果显示的给带有默认值的列插入 null ,最终结果不是默认值,而是null.

  1. 那么什么情况下才会触发默认值呢?

【MySQL】—— 数据库的约束 (null、unique、primary key、default、foreign key、check)_主键_08

结论:

按列进行插入的时候,并且如果有些列没有被显示指定,就会触发默认值.