唯一键约束--查看索引

青春壹個敷衍的年華 提交于 2020-01-12 22:06:20

唯一键约束

(一)概述
1、关键字:unique key
2、特点:指定了唯一键的列的值必须唯一,不能重复
3、作用:给主键以外的列,限定唯一性
4、唯一键分类
单列的唯一
复合唯一

唯一键和主键的区别:

(1)主键不能为空,唯一键可以为空
(2)主键约束,一个表只能有一个,而唯一键可以有很多个

(二)使用唯一键
1、如何创建/指定唯一键
(1)在建表时
create table 【数据库名.】表名称(
字段1 数据类型 primary key,
字段2 数据类型 【unique key】,
字段3 数据类型 【unique key】,

);

create table 【数据库名.】表名称(
字段1 数据类型 primary key,
字段2 数据类型 ,
字段3 数据类型 ,
…,
unique key(字段2), #分别唯一
unique key(字段3)
);

create table 【数据库名.】表名称(
字段1 数据类型 primary key,
字段2 数据类型 ,
字段3 数据类型 ,
…,
unique key(字段列表) #复合唯一
);

create table emp(
eid int primary key, #员工编号
ename varchar(20), #姓名
cardid varchar(18) unique key, #身份证号
tel varchar(11) unique key
);

insert into emp values(1,‘张三’,‘123456789123456789’,‘12345678912’);
insert into emp values(2,‘李四’,‘123456789123456788’,‘12345678912’);

mysql> insert into emp values(2,‘李四’,‘123456789123456788’,‘12345678912’);
ERROR 1062 (23000): Duplicate entry ‘12345678912’ for key ‘tel’

(2)在建表后
修改表结构:
alter table 【数据库名.】表名称 add unique key(字段名);
alter table 【数据库名.】表名称 add unique key(字段列表); #复合唯一

2、删除唯一键
修改表结构:
alter table 【数据库名.】表名称 drop index 索引名;

如果不知道索引名,可以通过如下的语句查询: show index from 表名称;

alter table emp drop unique key; #错误的
alter table emp drop unique key(cardid); #错误的
alter table emp drop index cardid;在这里插入图片描述
在这里插入图片描述

索引:index
作用:为了提高查询效率,而设置索引
我们的键约束(主键、唯一键、外键),都会自动创建索引。
因为既然你建立键约束,那么该列的值一定很关键,那么在实际中肯定经常用他们的值来查询。
因此,为了提高查询效率,会自动在这些列上增加索引。在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!