1. 主键约束
(1). 作用 : 用来唯一标识表中的一行记录.
(2). 关键字 : PRIMARY KEY
(3). 特点 :
- 主键约束相当于唯一约束+非空约束的组合.主键约束列不允许重复,也不允许出现空值.
- 一个表中最多只能有一个主键约束.建立主键约束可以在列级别创建,也可以在表级别创建.
- 主键约束对应表中的一列或者多列(复合主键).
- 如果是多列组合的复合主键约束,那么这些列都不允许为空值.并且组合的值不允许重复.
- MySQL的主键名总是PRIMARY.就算自己命名了主键约束名也没用.
- 当创建主键约束时,系统默认会在所在列或列组合上建立对应的主键索引(能够根据主键查询的,就根据主键查询,效率更高).如果删除了主键约束,主键约束对应的索引就自动删除了.
- 需要注意的一点是,不要修改主键字段的值.因为主键是数据记录的唯一标识,如果修改了主键的值,就有可能破坏数据的完整性.
(4). 添加主键索引.
例1 : 建表时的列级约束.
- 列级约束,在列名后加上PRIMARY KEY关键字.
- 被PRIMARY KEY约束的字段的值必须唯一,且不能为NULL.
例2 : 建表时的表级约束.
- 表级约束.
- 复合约束.在PRIMARY KEY括号内有id,email两个字段.
例3 :
- 被复合主键约束的列,这些列的值都不允许为NULL,且该些列组合的值是唯一的.
例4 : 建表后添加主键约束.
(5). 删除主键约束.
例 :
- 删除主键约束,不需要指定主键名.因为不管指定不指定,主键约束名都是PRIMARY KEY.
- 一个表只有一个主键,删除主键约束后,非空约束还存在.
2. 自增列 AUTO_INCREMENT
(1). 作用 : 某个字段的值自增.
(2). 关键字 : AUTO_INCREMENT.
(3). 特点 :
- 一个表最多只能有一个自增长列.
- 当需要产生唯一标识符或顺序值时,可以设置自增长.
- 自增长列约束的列必须是键列.(主键列,唯一键列)
- 主键列:PRIMARY KEY. 唯一键列 : UNIQUE KEY.
- 自增约束的列的数据类型必须是整数类型.
- 如果自增列指定了0/NULL.会在当前最大值的基础上自增.如果自增列手动指定了具体的值,直接赋值为具体的值.
(4). 指定自增约束.
例1 :
- id字段为主键列,所以可以添加自增列关键字.
- 此例id字段未指定具体的值,所以从1开始一直自增.
例2 :
- 如果自增列指定了具体的值,则从当前最大值的基础上自增.
例3 :
例4 : 建表后添加自增列.
(5). 删除自增列.