索引 (Index) 可以幫助我們從表格中快速地找到需要的資料。舉例來說,假設我們要在一本園藝書中找如何種植青椒的訊息。若這本書沒有索引的話,那我們是必須要從頭開始讀,直到我們找到有關種直青椒的地方為止。若這本書有索引的話,我們就可以先去索引找出種植青椒的資訊是在哪一頁,然後直接到那一頁去閱讀。很明顯地,運用索引是一種有效且省時的方式。

從資料庫表格中尋找資料也是同樣的原理。如果一個表格沒有索引的話,資料庫系統就需要將整個表格的資料讀出 (這個過程叫做 Table Scan)。若有適當的索引存在,資料庫系統就可以先由這個索引去找出需要的資料是在表格的什麼地方,然後直接去那些地方抓資料。這樣子速度就快多了。

因此,在表格上建立索引是一件有利於系統效率的事。一個索引可以涵蓋一或多個欄位。建立索引的語法如下:

CREATE INDEX "索引名" ON "表格名" (欄位名);

現在假設我們有以下這個表格,

Customer 表格
欄位名稱資料種類
First_Namechar(50)
Last_Namechar(50)
Addresschar(50)
Citychar(50)
Countrychar(25)
Birth_Datedatetime

若我們要在 Last_Name 這個欄位上建一個索引,我們就打入以下的指令,

CREATE INDEX IDX_CUSTOMER_LAST_NAME
ON Customer (Last_Name);

我們要在 City 及 Country 這兩個欄位上建一個索引,我們就打入以下的指令,

CREATE INDEX IDX_CUSTOMER_LOCATION
ON Customer (City, Country);

索引的命名並沒有一個固定的方式。通常會用的方式是在名稱前加一個字首,例如 "IDX_" ,來避免與資料庫中的其他物件混淆。另外,在索引名之內包括表格名及欄位名也是一個好的方式。

請讀者注意,每個資料庫會有它本身的 CREATE INDEX 語法,而不同資料庫的語法會有不同。因此,在下指令前,請先由資料庫使用手冊中確認正確的語法。

下一頁:SQL ALTER TABLE



Copyright © 2017   1keydata.com   版權所有