MYSQL - 数据表的约束条件

113 阅读2分钟

数据表

数据表是列的集合,数据是行的集合。

创建数据表的过程是规定列的属性的过程,同时也是实施数据库完整性(包括实体完整性引用完整性域完整性等)约束的过程,

创建数据表的语法

CREATE TABLE <表名> 
(
  字段名 数据类型 [列级别约束条件] [默认值],
  字段名 数据类型 [列级别约束条件] [默认值],
  ...
  [表级别约束条件]
)

约束条件

主键约束

主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。

主键本身是“非空且唯一”的,也就是如果是多字段联合主键,那么该联合主键不能为空。

列级别定义主键约束

单一主键:

字段名 数据类型 PRIMARY KEY [默认值]

联合主键:

PRIMARY KEY [字段1, 字段2,. . ., 字段n]
表级别定义主键约束

在表中的字段定义完成之后定义表级别的约束条件:

[CONSTRAINT <约束名>] PRIMARY KEY [字段名]

外键约束

外键用来在两个表的数据之间建立连接,可以是一列或者多列。一个表可以有一列或者多列外键。

外键确保了“参照完整性”,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。

[CONSTRAINT <外键名>] FOREIGN KEY 字段名1 [ ,字段名2,…]   
REFERENCES <主表名> 主键列1 [ ,主键列2,…]

非空约束

字段名 数据类型 NOT NULL

唯一约束

字段名 数据类型 UNIQUE

默认值约束

字段名 数据类型 DEFAULT 默认值

设置字段自增

字段名 数据类型 AUTO_INCREMENT

一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。