fulltext
spatial]index
key[别名](字段名1[(长度)])[asc
desc]);相关语法解析:1)unique:可选参数,表示唯一索引。2)fulltext:可选参数,表示全文索引。3)spatial:可选参数,表示空间索引4)index和key:用来表示字段的索引,二者选一即可。5)别名:可选参数,表示穿件的索引名称。6)字段名1:指定索引对应字段的名称。7)长度:可选参数,用于表示索引的长度。8)asc和desc:可选参数。asc表升序,desc表降序排列。MySQL中的6种索引类型,如下:1)创建普通索引在t1表中id字段上创建索引,SQL语句如下:createtablet1(idint,namevarchar(20),scorefloat,index(id));可使用explain语句查看索引是否被使用,SQL语句如下:explainselect*fromt1whereid=1;2)创建唯一性索引创建一个表名为t2的表,在表中的id字段上建立索引名为unique_id的唯一性索引,并按升序排列,SQL语句如下:createtablet2(idintnotnull,namevarchar(20)notnull,uniqueindexunique_id(idasc)这样,便在id字段上建立了一个名为unique_id的唯一性索引。3)创建全文索引创建一个表名为t3的表,在表中的name字段上建立索引名为fulltext_name的全文索引,SQL语句如下:createtablet3(idintnotnull,namevarchar(20)notnull,fulltextindexfulltext_name(name))engine=MyISAM;这样,即可在name字段上建立一个名为fulltext_name的全文索引。需要注意的是,由于目前只有MyISAM存储引擎支持全文索引,默认的InnoDB存储引擎不支持全文索引。因此,在建立全文索引时,一定要注意表存储引擎的类型,对于经常需要索引的字符串、文字数据等信息,可以考虑存储到MyISAM存储引擎的表中。4)创建单列索引创建一个表名为t4的表,在表中的name字段上建立索引名为single_name的单列索引,SQL语句如下:createtablet4(idintnotnull,indexsingle_name(name(20))这样,即可在name字段上建立一个名称为single_name的单列索引,并且索引的长度为20。5)创建多列索引创建一个表名为t5的表,在表中的id和name字段上建立索引名为multi的多列索引,SQL语句如下:createtablet5(idintnotnull,indexnulti(id,name(20))这样,即可在id和name字段上建立一个名为multi的多列索引。需要注意的是,在多列索引中,只有查询条件中使用了这些字段中的第一个字段时多列索引才会被使用。为了验证这个说法是否正确,将id字段作为查询条件,通过explain语句查可看索引的使用情况,SQL语句如下:explainselect*fromt5whereid=1;但是,如果只使用name字段作为查询条件,multi索引不会被使用。6)创建空间索引创建一个表名为t6的表,在空间类型为geometry的字段上创建空间索引,SQL语句如下:createtablet6(idint,spacegeometrynotnull,spatialindexsp(space)这样,即可在t6表中的space字段上建立名称为sp的空间索引了。需要注意的是,创建空间索引时,所在字段的值不能为空值,并且表的存储引擎为MyISAM。2、已有表创建索引若想在一个已经存在的表上创建索引,可以使用createindex语句,其创建索引的具体语法格式如下所示:create[unique
fulltext
spatial]index索引名on表名(字段名[(长度)][asc
desc]);在上述语法格式中,unique、fulltext和spatial都是可选参数,分别用于表示唯一性索引、全文索引和空间索引;index用于指明字段为索引。为了更好的展示如何使用createindex语句在已经存在的表上创建索引,接下来创建一个book表,该表中没有建立任何索引,创建book表的SQL语句如下:createtablebook(bookidintnotnull,booknamevarchar()notnull,authorsvarchar()notnull,infovarchar()null,