1. 简介
在 MySQL 中,PRIMARY KEY 和 UNIQUE 约束都可以用来确保表中的数据的唯一性。
2. PRIMARY KEY 约束
2.1 定义
PRIMARY KEY 约束用于唯一地标识表中的每一行。
主键必须包含唯一的值,不能为 NULL。如果表中没有 PRIMARY KEY 约束,那么表中可以存在重复的行。
2.2 示例
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
上述代码创建了一个 Persons 表,并指定了 ID 列为 PRIMARY KEY。
2.3 特点
PRIMARY KEY 约束的特点如下:
一个表只能有一个 PRIMARY KEY 约束。
PRIMARY KEY 约束自动成为 NOT NULL 约束。
PRIMARY KEY 约束唯一标识表中的每一行。
PRIMARY KEY 约束允许您快速和容易地访问表中的特定行。
PRIMARY KEY 约束可以由多个列组成。
3. UNIQUE 约束
3.1 定义
UNIQUE 约束用于确保列中的所有值都是唯一的。
唯一性的限制可以是在表中的所有行,也可以是在表中的某个列或列组中。
3.2 示例
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
UNIQUE (ID)
);
上述代码创建了一个 Persons 表,并指定了 ID 列为 UNIQUE。
3.3 特点
UNIQUE 约束的特点如下:
一个表可以有多个 UNIQUE 约束。
每个 UNIQUE 约束可以由多个列组成。
UNIQUE 约束允许您快速和容易地访问表中的特定行。
与 PRIMARY KEY 约束不同,UNIQUE 约束允许 NULL 值。
4. PRIMARY KEY 和 UNIQUE 约束的区别
4.1 区别1:空值
在 PRIMARY KEY 约束中,列不能包含空值。
在 UNIQUE 约束中,列可以包含空值。
4.2 区别2:数量
在表中,一个 PRIMARY KEY 只能有一个字段,但一个 UNIQUE 约束可以由多个字段组成。
4.3 区别3:索引类型
在 MySQL 中,PRIMARY KEY 约束会自动创建一个索引,而 UNIQUE 约束不会自动创建索引,但可以手动创建索引。
5. 总结
PRIMARY KEY 约束和 UNIQUE 约束都可以用于确保表中的数据的唯一性,但它们之间有重要区别,包括空值、数量和索引类型。
PRIMARY KEY 约束用于唯一地标识表中的每一行,而 UNIQUE 约束用于确保列中的所有值都是唯一的。