创建索引的方法有两种:创建表的同时创建索引,在已有表上创建索引。

方法一:创建表的同时创建索引。

使用这种方法创建索引时,可以一次性地创建一个表的多个索引(例如唯一性索引、普通索引、复合索引等),其语法格式与创建的语法格式基本相同(注意粗体字部分的代码)。

Create  table 表名(

字段名1数据类型 [约束条件]

字段名字2   数据类型 [约束条件]

[unique][fulltext] index [索引名](字段名[(长度)] [asc|desc]

)engine=存储引擎类型 default charset=字符集类型

备注“[]”表示可选项,“[]”里面的“|”表示将各个选项隔开,“()”表示必选项。

长度表示索引中关键字的字符长度,关键字的值可以是数据库表中字段值得一部分,这种索引称为“前缀索引”。

      Ase与desc为可选项参数,分别表示升序与降序,不过目前这两个可选项参数没有实际作用,索引中所有关键字的值均以升序存储。

 

使用下面的SQL语句创建了一个存储引擎为MyISAM、默认字符集为gbk的书籍book表,其中定义了主键isbn、书名name、简介brief_intorduction、价格price以及出版时间publish_time,并在该表分别定义了唯一性索引isbn_unique、普通索引name_idex、全文索引brief_fulltext以及复合索引complex_index

create table book(

isbn char (20) primary key,

name char(100) not null,

brifef_introduction text not noll,

price decimal(6,2),

publish_time date not null,

unique index isbn_unique (isbn),

index name_index (name (20)),

fulltext index brief_fulltext (name,brief_introduction),

index complex_index (price,publish_time),

) engine=MyISAM default charset=gbk;

 

方法二:在已有的表上创建索引

  在已有的表上创建索引有两种语句格式,这种语句语法格式的共同特征是需要指导在哪个表上创建索引,语法格式分别如下:

  语法格式一:

   create[unique|fulltext]index 索引名 on 表名(字段名[(长度)] [ase|desc])

   语法格式二:

   alter table 表名 add[unique|fulltext]index 索引名(字段名[(长度)] [ase|desc])

  例如,向课程course 表的课程描述description字段添加全文索引,可以使用下面SQL语句:

  alter  table  coursr add fulltexr index description_fulltext (description);

该语句等效于:

  Create fulltext index description on course (description);

删除表索引

  SQL语句是:

   drop index 索引名 on 表名