Ø自动增长列
在创建表时,表中的 id 字段的值一般从 1 开始,当需要插入大量的数据时,这种做法不仅比较烦琐,而且还容易出错。为此,可以将 id 字段的值设置为自动增长。 MySQL 中可以使用AUTO_INCREMENT 关键字设置表中字段值的自动增长,在创建表时将某个字段设置为自动增长列的语法格式如下所示。
从上方代码的执行结果可以看出, orders 表中的 oid 字段已经成功设置成自动增长列。 域完整性
域完整性指的是对数据表中单元格的约束,通过给列定义规则来约束单元格的属性。常见的域完整性约束包括数据类型约束、非空约束和默认值约束,其中数据类型约束就是在创建表时所指定的字段类型。本节将重点讲解域完整性中的非空约束和默认值约束。 Ø非空约束
非空约束用于保证数据表中的某个字段的值不为 NULL,在 MySQL 中可以使用 NOT NULL 关键字为列添加非空约束。在创建表时,为某个字段添加非空约束的具体语法格式如下所示。
以上语法格式中,“字段名”表示需要添加非空约束的列名, “数据类型”和 NOT NULL 关键字之间需要用空格隔开。另外,非空约束也可以添加到已经创建完成的表中,语法格式如下所示。
ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;
从上方代码的执行过程可以看出,已成功为表 orders 中的 addr 字段添加非空约束。
Ø默认值约束
默认值约束用于为数据表中的某个字段设置默认值,例如,订单的创建时间如果不进行手动填写,则默认为当前时间。在 MySQL 中使用 DEFAULT 关键字设置默认值约束,创建表时,为某个字段添加默认值约束的具体语法格式如下所示。
图中, B 和 C 分别引用了 A 中的 a 字段( A 被 B 和 C 引用),所以 a1 和 a2 受 a 的变化影响。如果要删除 a,那么需要将 a1 和 a2先删除,或者将 a 的值设置为 NULL。 Ø外键与外键约束
外键的定义是具有相对性的。如果一个字段 x 在一张表中为主键,在另一张表中不为主键,那么字段 x 称为第二张表的外键。外键的主要作用是建立和加强两个表之间的数据连接,如图所示。
在表 A 中的字段 a 被设置为主键的前提下,表 B 中引用了表 A 中的字段 a 的数据,所以表 B 中的字段 a 被称为表 A 的外键。
Ø唯一索引
MySQL 中使用 UNIQUE 关键字为某列定义唯一索引,被定义唯一索引的列不允许存在重复的值。当有新的数据插入时, MySQL 会自动检查新记录中的字段值是否已经存在于数据表中,如果已经存在,系统将拒绝这条数据的插入。唯一索引不仅可以保证数据的唯一性,而且可以简化 MySQL对索引的管理工作,使索引变得简单高效。
在创建表时可以创建唯一索引,语法格式如下所示。
上方语法格式中, UNIQUE INDEX 关键字表示唯一索引, “索引名”为可选项,括号中的“字段名”表示创建索引的字段,“长度”为可选项。另外,对于已经创建完成的表,也可以为某个字段创建唯一索引,语法格式如下所示。