主题
主键与唯一约束
1. 主键(PRIMARY KEY)
- 唯一标识表中的每一条记录。
- 不能包含 NULL 值。
- 一个表只能有一个主键,可以是单列或多列组合。
创建表时定义主键
sql
CREATE TABLE users (
id INT PRIMARY KEY,
username VARCHAR(50)
);
修改表添加主键
sql
ALTER TABLE users
ADD PRIMARY KEY (id);
2. 唯一约束(UNIQUE)
- 确保字段值唯一,但允许 NULL(根据配置,有时允许多个 NULL)。
- 一个表可以有多个唯一约束。
创建表时定义唯一约束
sql
CREATE TABLE users (
id INT,
email VARCHAR(100) UNIQUE
);
修改表添加唯一约束
sql
ALTER TABLE users
ADD UNIQUE (email);
3. 主键与唯一约束的区别
特性 | 主键(PRIMARY KEY) | 唯一约束(UNIQUE) |
---|---|---|
唯一性 | 必须唯一 | 必须唯一 |
NULL 值 | 不允许 | 允许(通常情况下) |
数量 | 一个表仅能有一个主键 | 一个表可以有多个唯一约束 |
合理使用主键和唯一约束,可以保证数据完整性和避免重复数据。