第 5 章 · 第三节 · 课件第 14、15 页合并重做
UNIQUE 约束
UNIQUE 约束保证字段的值在表中不重复。
UNIQUE 约束:字段的值不能重复
定义了 UNIQUE 约束的字段(或几个字段的组合),表中任意两行在这个字段上的值都不能相同。
列级约束 写在字段后面
CREATE TABLE s_unique ( sno CHAR(10) NOT NULL, sn VARCHAR(45) UNIQUE, …… );
表级约束 写在所有字段之后
CREATE TABLE s_unique ( sno CHAR(10) NOT NULL, sn VARCHAR(45), …… UNIQUE (sn) );
- 要求几个字段组合起来不重复时,只能用表级约束,括号里写多个字段
- 一张表可以定义多个 UNIQUE 约束
- UNIQUE 字段允许为 NULL。MySQL 会为 UNIQUE 约束自动建立一个唯一索引
练一练
要求同一院系内学生不重名,应该怎样写?
- Asn 和 dept 后面各写一个 UNIQUE
- BUNIQUE (sn, dept)
- CPRIMARY KEY (sn)
- DCHECK (sn, dept)
答案 B
选项 A 是两个独立的约束,姓名在全表不能重复,院系也不能重复。B 才是两个字段组合起来不重复。

