建立和刪除索引
索引的建立可以在CREATE TABLE語句中進行,也可以單獨用CREATE INDEX或ALTER TABLE來為表增加索引。刪除索引可以利用ALTER TABLE或DROP INDEX語句來實現。
(1)使用ALTER TABLE語句建立索引。
語法如下:
alter table table_name add index index_name (column_list) ;
alter table table_name add unique (column_list) ;
alter table table_name add primary key (column_list) ;
alter table table_name add primary key (column_list) ;
alter table table_name add primary key (column_list) ;建立索引的格式,table_name是要增加索引的表名,column_list指出哪些欄位進行索引,多列時各列之間以逗號分隔。索引名index_name可選,缺省時,MySQL會根據第一個索引列賦一個名稱。另外,ALTER TABLE允許在單一語句中更改多個表,因此可以同時建立多個索引。
建立索引的範例如下:
mysql> use tpsc
Database changed
mysql> alter table tpsc add index shili (tpmc ) ;
Query OK, 2 rows affected (0.08 sec) ;
Query OK, 2 rows affected (0.08 sec); (2)使用CREATE INDEX語句對錶增加索引。
能夠增加普通索引和UNIQUE索引兩種。其格式如下:
create index index_name on table_name (column_list) ;
create unique index index_name on table_name (column_list) ;
說明:table_name、index_name和column_list具有與ALTER TABLE語句中相同的含義。另外,不能用CREATE INDEX語句建立PRIMARY KEY索引。
(3)刪除索引。
刪除索引可以使用ALTER TABLE或DROP INDEX語句來實現。 DROP INDEX可以在ALTER TABLE內部作為一條語句處理,其格式如下:
drop index index_name on table_name ;
alter table table_name drop index index_name ;
alter table table_name drop primary key ;都刪除了table_name中的索引index_name。而在最後一語句中,只在刪除PRIMARY KEY索引中使用,因為一個表只可能有一個PRIMARY KEY索引,因此不需要指定索引名。如果沒有建立PRIMARY KEY索引,但表格具有一個或多個UNIQUE索引,則MySQL將刪除第一個UNIQUE索引。
如果從表中刪除某列,則索引會受影響。對於多列組合的索引,如果刪除其中的某一列,則該列也會從索引中刪除。如果刪除組成索引的所有列,則整個索引將被刪除。
刪除索引的操作,如下面的程式碼:
mysql> drop index shili on tpsc ;
Query OK, 2 rows affected (0.08 sec)
Records: 2 Duplicates: 0 Warnings: 08 sec)
Records: 2 Duplicates: 0 Warnings: 0000%為“shili”的索引。