1.普通索引的创建、删除、修改。
createtabletest1(
idint,
namevarchar(32),
indexin_id(id),
keyin_name(name));
上面中的index和key关键字创建索引的效果是一样的。
可以使用showcreatetabletest1来查看建表语句。
删除索引方法一:dropindexin_idontest1;
删除索引方法二:altertabletest1dropindexin_name;
在已经建立的表中添加索引,这里就称为修改索引。
方法一:createindexin_idontest1(id);
方法二:altertabletest1addindexin_name(name);
2.唯一索引的创建、删除、修改。
createtabletest2(
idintauto_incrementkey,
namevarchar(32)notnullunique,
telvarchar(64)notnull,
uniquekeyuniq_tel(tel));
上面中的id字段是主键(也是一种唯一索引),name是唯一索引,tel也是唯一索引。
可以使用showcreatetabletest2来查看建表语句。
删除索引:dropindexuniq_telontest2;
修改索引:altertabletest2adduniquekeyuniq_tel(tel);
3.全文索引的创建、删除、修改。
createtabletest3(
idintauto_incrementkey,
namevarchar(32)notnullunique,
name_descvarchar()notnull,
fulltextfull_name_desc(name_desc));
上面中的name_desc就是全文索引。
删除索引:dropindexfull_name_descontest3;
修改索引:altertabletest3addfulltextfull_name_desc(name_desc);
4.多列索引的创建、删除、修改。
createtabletest4(
idintauto_incrementkey,
name1varchar(32)notnull,
name2varchar(32)notnull,
name3varchar(32)notnull,
name4varchar(32)notnull,
indexmul_n1_n2_n3(name1,name2,name3));
上面中的mul_n1_n2_n3就是name1、name2、name3的复合索引名。
删除索引:dropindexmul_n1_n2_n3ontest4;
修改索引:altertabletest4addindexmul_n1_n2_n3(name1,name2,name3);
5.唯一多列索引。
createtabletest5(
idintauto_incrementkey,
name1varchar(32)notnull,
name2varchar(32)notnull,
name3varchar(32)notnull,
name4varchar(32)notnull,
uniquekeymul_n1_n2_n3(name1,name2,name3));
6.空间索引。
createtabletest5(
idintauto_incrementkey,
namegeometrynotnull,
spatialkeyspa_name(name))engine=MyISAM;