SQL語句基礎(chǔ)學(xué)習(xí)之CreateIndex

字號(hào):

索引 (Index) 可以幫助我們從表格中快速地找到需要的資料。舉例來說,假設(shè)我們要在一本園藝書中找如何種植青椒的訊息。若這本書沒有索引的話,那我們是必須要從頭開始讀,直到我們找到有關(guān)種直青椒的地方為止。若這本書有索引的話,我們就可以先去索引找出種植青椒的資訊是在哪一頁,然后直接到那一頁去閱讀。很明顯地,運(yùn)用索引是一種有效且省時(shí)的方式。
    從資料庫表格中尋找資料也是同樣的原理。如果一個(gè)表格沒有索引的話,資料庫系統(tǒng)就需要將整個(gè)表格的資料讀出 (這個(gè)過程叫做’table scan’)。若有適當(dāng)?shù)乃饕嬖?,資料庫系統(tǒng)就可以先由這個(gè)索引去找出需要的資料是在表格的什么地方,然后直接去那些地方抓資料。這樣子速度就快多了。
    因此,在表格上建立索引是一件有利于系統(tǒng)效率的事。一個(gè)索引可以涵蓋一或多個(gè)欄位。建立索引的語法如下:
    CREATE INDEX "INDEX_NAME" ON "TABLE_NAME" (COLUMN_NAME)
    現(xiàn)在假設(shè)我們有以下這個(gè)表格,
    TABLE Customer
    (First_Name char(50),
    Last_Name char(50),
    Address char(50),
    City char(50),
    Country char(25),
    Birth_Date date)
    若我們要在 Last_Name 這個(gè)欄位上建一個(gè)索引,我們就打入以下的指令,
    CREATE INDEX IDX_CUSTOMER_LAST_NAME on CUSTOMER (Last_Name)
    若我們要在 Last_Name 這個(gè)欄位上建一個(gè)索引,我們就打入以下的指令,
    CREATE INDEX IDX_CUSTOMER_LOCATION
    on CUSTOMER (City, Country)
    索引的命名并沒有一個(gè)固定的方式。通常會(huì)用的方式是在名稱前加一個(gè)字首,例如 "IDX_" ,來避免與資料庫中的其他物件混淆。另外,在索引名之內(nèi)包括表格名及欄位名也是一個(gè)好的方式。
    請(qǐng)讀者注意,每個(gè)資料庫會(huì)有它本身的 CREATE INDEX 語法,而不同資料庫的語法會(huì)有不同。因此,在下指令前,請(qǐng)先由資料庫使用手冊(cè)中確認(rèn)正確的語法。