02-09-列属性(唯一键)

唯一键

唯一键:unique key,用来保证对应的字段中数据唯一的。

主键也可以用来保证字段数据唯一性,但是一张表只有一个主键

  1. 唯一键在一张表中可以有多个
  2. 唯一键允许字段数据为NULLNULL可以有多个(NULL不参与比较)

创建唯一键

创建唯一键与创建主键非常类似。

  1. 直接在表字段后面增加唯一键标识符:unique [key]

    create table my_unique1(
    id int primary key auto_increment,
    username varchar(10) unique
    )charset=utf8;
    
  2. 在所有的字段之后使用unique key (字段列表)

    create table my_unique2(
    id int primary key auto_increment,
    username varchar(10),
    unique key (username)
    )charset=utf8;
    
  3. 在创建完之后也可以增加唯一键

    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);
    

查看唯一键

唯一键是属性,可以通过查看表结构来查看唯一键

02-09-列属性(唯一键)

唯一键效果:在不为空的情况下,不允许重复

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');

02-09-列属性(唯一键)

在查看表创建语句的时候,会看到与主键不同的一点:多出一个名字
02-09-列属性(唯一键)

删除唯一键

基本语法:alter table 表名 drop index 唯一键名字;

index关键字:索引,唯一键是索引一种(提升查询效率)

02-09-列属性(唯一键)

复合唯一键

唯一键与主键一样可以使用多个字段来共同保证唯一性。

一般主键都是单一字段(逻辑主键),而其他需要唯一性的内容都是由唯一键来处理。