SQL中索引的建立和刪除及數據字典

在SQL中,使用索引可以減少搜索的時間。
什麼是索引呢?
在關係數據庫中,索引是一種單獨的、物理的對數據庫表中一列或多列的值進行排序的一種存儲結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的數據頁的邏輯指針清單。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。
建立索引的目的:加快查詢速度。
關係數據庫管理系統中常見索引:
①順序文件上的索引
②B+樹索引
③散列(hash)索引
④位圖索引
數據庫管理員 或 表的屬主(即建立表的人)可以建立索引。
關係數據庫管理系統自動完成維護索引的工作。
關係數據庫管理系統自動選擇合適的索引作爲存取路徑,用戶不必也不能顯式地選擇索引。
建立索引
語句格式
CREATE [UNIQUE] INDEX <索引名>
ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);

<表名>:要建索引的基本表的名字
索引:可以建立在該表的一列或多列上,各列名之間用逗號分隔
<次序>:指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC
UNIQUE:此索引的每一個索引值只對應唯一的數據記錄
例:爲學生-課程數據庫中的Student,Course,SC三個表建立索引。Student表按學號升序建唯一索引,Course表按課程號升序建唯一索引,SC表按學號升序和課程號降序建唯一索引

  CREATE UNIQUE INDEX  Stusno ON Student(Sno);
   CREATE UNIQUE INDEX  Coucno ON Course(Cno);
   CREATE UNIQUE INDEX  SCno ON SC(Sno ASC,Cno DESC);

修改索引
ALTER INDEX <舊索引名> RENAME TO <新索引名>

例:將SC表的SCno索引名改爲SCSno

ALTER INDEX SCno RENAME TO SCSno;

刪除索引
DROP INDEX <索引名>;

刪除索引時,系統會從數據字典中刪去有關該索引的描述。

例:刪除Student表的Stusname索引

 DROP INDEX Stusname;

數據字典
數據字典是關係數據庫管理系統內部的一組系統表,它記錄了數據庫中所有定義信息:
關係模式定義
視圖定義
索引定義
完整性約束定義
各類用戶對數據庫的操作權限
統計信息等
關係數據庫管理系統在執行SQL的數據定義語句時,實際上就是在更新數據字典表中的相應信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章