表的约束

对表所存储的数据进行合法性检查,通过约束来实现。

1、MySQL支持的完整性约束

完整性是指数据的准确性和一致性,完整性检查就是检查数据的准确性和一致性。

MySQL除了支持SQL的完整性约束外,还扩展了AUTO_INCREMENT约束。

完整性约束关键字 含义
NOT NULL 约束字段的值不能为空
DEFAULT 设置字段的默认值
UNIQUE KEY(UK) 约束字段的值唯一
PRIMARY KEY(PK) 约束字段为表的主键,可以作为表记录的唯一标识
AUTO_INCREMENT 约束字段的值自动增加
FOREIGN KEY(FK) 约束字段为表的外键

 

 

 

 

 

 

 

 

 

约束分类:

  • 单列约束:每个约束只约束一列数据
  • 多列约束:每个约束可以约束多列数据

2、设置非空约束(NOT NULL,NK)

当数据表中某个字段上的内容不希望为NULL时,则可以设置NK约束进行设置。

语法形式:

create table table_name(

  属性名 数据类型 NOT NULL,

  ……

);

3、设置字段的默认自(DEFAULT)

当数据表中插入一条新纪录时,如果没有设置某个字段的值,那么数据库系统会自动为该字段插入默认值。

语法形式:

create table table_name(

  属性名 数据类型 DEFAULT 默认值,

);

4、设置唯一约束(UNIQUE KEY,UK)

当数据表中的某个字段上的内容不允许重复时,则可以使用UK约束进行设置。

语法形式:

create table table_name(

  属性名 数据类型 UNIQUE KEY,

  ……

);

5、设置主键约束(PRIMARY KEY,PK)

当想用数据表中的某个字段来唯一标识数据库中的记录时,则可以使用PK约束来进行设置。

主键约束 = 非空约束 + 唯一约束

主键分为多字段主键和单字段主键。

create table table_name(

  属性名 数据类型 PRIMARY KEY,

  ……

);

6、设置字段的自动增长(AUTO_INCREMENT)

一个表中只有一个字段能使用此约束,该字段的类型必须为整数类型。由于AUTO_INCREMENT约束后的字段会生成唯一的ID,所以用该字段也经常会设置成PK主键。

create table table_name(

  属性名 数据类型 AUTO_INCREMENT,

  ……

);

7、设置外键约束(FORIEGN KEY,FK)

外键约束保证多个表之间的完整性约束。设置外键约束的两个表之间具有父子关系,即子表的某个字段取值范围由父表决定。

设置FK约束的字段必须依赖于数据库中已经存在的父表的主键。

create table table_name(

  属性名 数据类型,

  ……

  CONSTRAINT 外键约束名 FOREIGN KEY(属性名1)

    REFERENCES 表名(属性名2)

)

 

posted @ 2018-10-29 10:22  AlphaJunS  阅读(1073)  评论(0编辑  收藏  举报