数据库约束

1:约束类型:

约束类型

约束方式

NOT NULL

指示某列不能存储NULL值

UNIQUE

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

DEFAULT

规定没有给列赋值时的默认值

PRIMARAY KEY

NOT NULL和UNIQUE的结合(指定某列不能为null值,并且此列的每一行的值都是唯一的),确保某一列(或多列)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。

FOREIGN KEY

保证一个表中的数据匹配另一个表中的值的参照完整性

CHECK

保证列中的值符合指定的条件。(对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK语句)

NOT NULL :指示某列不能储存NULL值,即某列不为空;

使用:

mysql unique key报错 mysql unique null_赋值

mysql unique key报错 mysql unique null_mysql_02


mysql unique key报错 mysql unique null_mysql unique key报错_03


如果在增加数据时,第一列为NULL,就会报错

mysql unique key报错 mysql unique null_默认值_04

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

mysql unique key报错 mysql unique null_赋值_05


这时表中已经有一个name为李数据信息,倘若此时再添加一个name为李的数据,就会报错

mysql unique key报错 mysql unique null_默认值_06

DEFAULT:规定没有给列赋值时的默认值
使用方法:

mysql unique key报错 mysql unique null_mysql unique key报错_07

mysql unique key报错 mysql unique null_默认值_08


当name列没有赋值时,使用默认值unkown。

mysql unique key报错 mysql unique null_mysql_09

PRIMARY KEY主键约束某列不能存储空值且唯一(NOT NULL和UNIQUE的结合)确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速的找到表中的一个特定记录。(因为是主键,可以理解为其他表连接此表的接口,所以不能存储空值,这样接口就不存在了,也必须唯一,只有唯一,其他表才能找到此接口)

mysql unique key报错 mysql unique null_主键_10


mysql unique key报错 mysql unique null_赋值_11


mysql unique key报错 mysql unique null_mysql_12


对于整数类型的主键,常配搭自增长auto_increment来使用。插入数据对应字段不给值时,使用最大值+1。

mysql unique key报错 mysql unique null_mysql_13


mysql unique key报错 mysql unique null_赋值_14


mysql unique key报错 mysql unique null_主键_15

FOREIGN KEY:(外键约束外键用于关联其他表的主键或唯一键,保证一个表中的数据匹配与另一个表中的值的参照完整性。

foreign key (字段名) reference 主表(列)

创建班级表,id 为主键:

mysql unique key报错 mysql unique null_mysql_16

创建学生表student,一个学生对应一个班级,一个班级对应多个学生。使用id为主键,

classes_id为外键,关联班级表id

mysql unique key报错 mysql unique null_默认值_17


在两个表中插入数据

mysql unique key报错 mysql unique null_mysql_18


mysql unique key报错 mysql unique null_mysql_19

CHECK:(忽略)保证列中的值符合指定条件。(MySQL数据库对CHECK子句进行分析,但是忽略CHECK语句)