創建索引的方法有兩種:創建表的同時創建索引,在已有表上創建索引。
方法一:創建表的同時創建索引。
使用這種方法創建索引時,可以一次性地創建一個表的多個索引(例如唯一性索引、普通索引、複合索引等),其語法格式與創建的語法格式基本相同(注意粗體字部分的代碼)。
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 表名