唯一索引
-
所谓唯一索引,就是在创建索引时,限制索引的字段值必须是唯一的。通过该类型的索引可以比普通索引更快速地查询某条记录。
1. 创建表时定义索引
CREATE TABLE tablename(propname1 type1,……propnamen type..n,UNIQUE INDEX | KEY [indexname] (propnamen [(length)] [ ASC | DESC ] ) );
注意:
参数UNIQUE INDEX和UNIQUE KEY是用来指定字段为索引的,两者选择其中之一即可;
参数indexname是索引名字,可省略;
参数propnamen是索引对应的字段的名称,该字段必须为前面定义好的字段且必须定义为 UNIQUE 约束;
参数length是可选参数,其指索引的长度,必须是字符串类型才可以使用;
参数ASC和DESC都是可选参数,ASC表示升序排列,DESC表示降序排列,如果不指定,则为升序。mysql> create table class(id int, name varchar(64), teacher varchar(64), UNIQUE INDEX name_index(name)); //创建class表,同时指定name为唯一索引列 mysql> show create table class; //查询表结构 mysql> insert into class values(1, '一班', '张三'); //插入数据1 mysql> insert into class values(2, '二班', '李四'); //插入数据2 mysql> select * from class where id>0; //根据列查询
2. 已存在的表上创建索引
方法一:CREATE UNIQUE INDEX indexname ON tablename (propname [(length)] [ASC|DESC]);
方法二:
ALTER TABLE tablename ADD UNIQUE INDEX | KEY indexname (propname [(length)] [ASC|DESC]);