一、约束条件
约束是指表中数据的限制条件。表在设计的时候加入约束的目的就是为了保证表中的记录完整性和有效性,比如:有些列的值不能为空的约束、有些列的值不能重复的约束。
1.1 约束分类
- 主键约束(primary key) PK
- 自增长约束(auto_increment)
- 非空约束(not null)
- 唯一性约束(unique)
- 默认约束(default)
- 零填充约束(zerofill)
- 外键约束(foreign key) FK
二、主键约束
- MySQL主键约束是一个列或者多个列的组合,其值能唯一地标识表中的每一行,方便在RDBMS中尽快的找到某一行。每个表最多只允许一个主键。
- 主键约束列不允许重复,也不允许出现空值,相当于 唯一约束 + 非空约束 的组合。
- 当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。
主键的3个关键词:唯一索引、非空
2.1 主键约束语法
//语法一:在 create table 语句中,通过 PRIMARY KEY 关键字来指定主键。
create table 表名(
...
<字段名> <数据类型> primary key
...
)
//语法二:在定义字段之后再指定主键
//当主键是由多个字段组成时,只能使用语法二
create table 表名(
...
[constraint <约束名>] primary key [字段名]
);
2.2 主键约束使用案例
//语法一
create table emp1(
eid int primay key,
name VARCHAR(20),
deptId int,
salary double
);
//语法二
create table emp2(
eid INT,
name VARCHAR(20),
deptId INT,
salary double,
constraint pk1 primary key(eid)
);
//主键由多个字段组成
create table emp3(
name varchar(20),
deptId int,
salary double,
primary key(name,