唯一键
唯一键:unique key
,用来保证对应的字段中数据唯一的。
主键也可以用来保证字段数据唯一性,但是一张表只有一个主键
- 唯一键在一张表中可以有多个
- 唯一键允许字段数据为
NULL
,NULL
可以有多个(NULL
不参与比较)
创建唯一键
创建唯一键与创建主键非常类似。
-
直接在表字段后面增加唯一键标识符:
unique [key]
create table my_unique1( id int primary key auto_increment, username varchar(10) unique )charset=utf8;
-
在所有的字段之后使用
unique key (字段列表)
create table my_unique2( id int primary key auto_increment, username varchar(10), unique key (username) )charset=utf8;
-
在创建完之后也可以增加唯一键
alter table 表名 add unique key(字段列表)
create table my_unique3( id int primary key auto_increment, username varchar(10) )charset=utf8; alter table my_unique3 add unique key(username);
查看唯一键
唯一键是属性,可以通过查看表结构来查看唯一键
唯一键效果:在不为空的情况下,不允许重复
insert into my_unique1 values(null,default);
insert into my_unique1 values(null,default);
insert into my_unique1 values(null,default);
insert into my_unique1 values(null,'Tom');
insert into my_unique1 values(null,'Tom');
在查看表创建语句的时候,会看到与主键不同的一点:多出一个名字
删除唯一键
基本语法:
alter table 表名 drop index 唯一键名字;
index
关键字:索引,唯一键是索引一种(提升查询效率)
复合唯一键
唯一键与主键一样可以使用多个字段来共同保证唯一性。
一般主键都是单一字段(逻辑主键),而其他需要唯一性的内容都是由唯一键来处理。