linux之SQL語句簡明教程---CREATE INDEX,簡明教程---create
索引 (Index) 可以協助我們從表格中快速地找到需要的資料。舉例來說,假設我們要在一本園藝書中找如何種植青椒的訊息。若這本書沒有索引的話,那我們是必須要從頭開始讀,直到我們找到有關種直青椒的地方為止。若這本書有索引的話,我們就可以先去索引找出種植青椒的資訊是在哪一頁,然後直接到那一頁去閱讀。很明顯地,運用索引是一種有效且省時的方式。
從資料庫表格中尋找資料也是同樣的原理。如果一個表格沒有索引的話,資料庫系統就需要將整個表格的資料讀出 (這個過程叫做'table scan')。若有適當的索引存在,資料庫系統就可以先由這個索引去找出需要的資料是在表格的什麼地方,然後直接去那些地方抓資料。這樣子速度就快多了。
因此,在表格上建立索引是一件有利於系統效率的事。一個索引可以涵蓋一或多個欄位。建立索引的文法如下:
CREATE INDEX "INDEX_NAME" ON "TABLE_NAME" (COLUMN_NAME);
現在假設我們有以下這個表格,
Customer 表格
欄位名稱 |
資料種類 |
First_Name |
char(50) |
Last_Name |
char(50) |
Address |
char(50) |
City |
char(50) |
Country |
char(25) |
Birth_Date |
datetime |
若我們要在 Last_Name 這個欄位上建一個索引,我們就打入以下的指令,
CREATE INDEX IDX_CUSTOMER_LAST_NAME
ON Customer (Last_Name);
若我們要在 Last_Name 這個欄位上建一個索引,我們就打入以下的指令,
CREATE INDEX IDX_CUSTOMER_LOCATION
ON Customer (City, Country);
索引的命名並沒有一個固定的方式。通常會用的方式是在名稱前加一個字首,例如 "IDX_" ,來避免與資料庫中的其他物件混淆。另外,在索引名之內包括表格名及欄位名也是一個好的方式。
請讀者注意,每個資料庫會有它本身的 CREATE INDEX 文法,而不同資料庫的文法會有不同。因此,在下指令前,請先由資料庫使用手冊中確認正確的文法。
Linux實測如下:
轉載請註明:小劉