
1.創建索引
在SQL語言中,建立索引使用CREATE INDEX語句,其一般格式如下:
CREATE [UNIQUE] [CLUSTER] INDEX<索引名>
ON <基本表名>(<列名>[<次序>],[,<列名>[<次序>]]...);
說明:
(1) UNIQUE規定索引的每一個索引值只對應于表中唯一的記錄。
(2) CLUSTER規定此索引為聚集索引。所謂聚集索引是指索引項的順序與表中記錄的物理順序一致的。聚集索引對于那些經常要搜索范圍值的列特別有效。使用聚集索引找到包含第一個值的行后,便可以確保包含后續索引值的行在物理相鄰。使用聚集索引能極大地提高查詢性能.省略CLUSTER則表示創建的索引為非聚集索引,非聚集索引與書本中的索引類似.數據存儲在一個地方,索引存儲在另一個地方,索引帶有網站制作指針指向數據的存儲位置。索引中的項目按索引鍵值的順序存儲,而表中的信息按另一種順序存儲(這可以由聚集索引規定)。
(3)<次序>:建立索引時指定列名的索引表是ASC(升序)或DESC(降序)。若不指定,默認為升序。
(4)本語句建立的索引的排列方式為:先以第一個列名值排序;該列值相同的記錄,則按下一列名排序。
【例3.8]在Student表的屬性列Sno上創建一個非聚集索引。
CREATE INDEX IDX_DNO_SNO
ON Student(Sno ASC);
【例3.91在Student表的屬性列Sname上創建一個聚集索引。
CREATE CLUSTER INDEX IDX_SNAME ON Student(Sname ASC);
2.刪除索引
雖然索引能提高查詢效率,但過多或不當的索引會導致系統低效。用戶在表中每加進一個索引,數據庫就要做更多的工作。過多的索引甚至會導致索引碎片,降低系統效率。因此,不必要的索引應及時刪除,刪除索引的格式如下:
DROP INDEX <索引名>
說明:本語句將刪除定義的索引,該索引在數據字典中的描述也將被刪除。
【例3.10】刪除Student表的索引IDX_DNO_SNO。
DROP INDEX IDX DNO SNO;