mysql里的索引操作语句
1. 普通索引的创建、删除、修改。
create table test1(
id int,
name varchar(32),
index in_id(id),
key in_name(name));
上面中的index和key关键字创建索引的效果是一样的。
可以使用show create table test1来查看建表语句。
删除索引方法一:drop index in_id on test1;
删除索引方法二:alter table test1 drop index in_name;
在已经建立的表中添加索引,这里就称为修改索引。
方法一:create index in_id on test1(id);
方法二:alter table test1 add index in_name(name);
2. 唯一索引的创建、删除、修改。
create table test2(
id int auto_increment key,
name varchar(32) not null unique,
tel varchar(64) not null,
unique key uniq_tel(tel));
上面中的id字段是主键(也是一种唯一索引),name是唯一索引,tel也是唯一索引。
可以使用show create table test2来查看建表语句。
删除索引:drop index uniq_tel on test2;
修改索引:alter table test2 add unique key uniq_tel(tel);
3. 全文索引的创建、删除、修改。
create table test3(
id int auto_increment key,
name varchar(32) not null unique,
name_desc varchar(255) not null,
fulltext full_name_desc(name_desc));
上面中的name_desc就是全文索引。
删除索引:drop index full_name_desc on test3;
修改索引:alter table test3 add fulltext full_name_desc(name_desc);
4. 多列索引的创建、删除、修改。
create table test4(
id int auto_increment key,
name1 varchar(32) not null,
name2 varchar(32) not null,
name3 varchar(32) not null,
name4 varchar(32) not null,
index mul_n1_n2_n3(name1,name2,name3));
上面中的mul_n1_n2_n3就是name1、name2、name3的复合索引名。
删除索引:drop index mul_n1_n2_n3 on test4;
修改索引:alter table test4 add index mul_n1_n2_n3(name1,name2,name3);
5. 唯一多列索引。
create table test5(
id int auto_increment key,
name1 varchar(32) not null,
name2 varchar(32) not null,
name3 varchar(32) not null,
name4 varchar(32) not null,
unique key mul_n1_n2_n3(name1,name2,name3));
6. 空间索引。
create table test5(
id int auto_increment key,
name geometry not null,
spatial key spa_name(name)) engine = MyISAM;