資料表的索引與查詢 巨匠電腦  葉建榮整理 [email_address]
索引 索引的目的是為了在資料庫儲存的龐大資料中,能夠更快速找到資料。索引需要建立額外的參考資料,這是將資料庫中特定欄位的資料預先進行排序,並且提供「指標」( Pointer )指向資料庫真正儲存記錄的位址。
索引 索引資料簡單的說就是預先將資料系統化整理,以便能夠縮小搜尋範圍,在大量資料中快速找到資料。 例如:圖書附錄的索引資料,可以讓我們依照索引的主題和頁碼,馬上找到指定主題所在的頁碼。同理,在資料表只需選擇一些欄位建立索引資料,例如:【學生資料表】資料表的【學號】,透過學號的索引資料,就可以加速記錄的搜尋。
索引的基礎 - 搜尋 「搜尋」( Searching )是指在資料中找尋特定的「鍵值」( Key )。例如:在電話簿使用姓名找尋朋友的電話號碼、書局使用書號找書和學號在【學生資料表】找尋學生記錄,姓名、書號和學號就是鍵值,找尋鍵值的操作稱為搜尋,在 Access 資料表執行搜尋就是建立查詢物件。
索引的基礎 - 搜尋 因為搜尋是找尋指定的鍵值,換一個角度,資料表就需要先替記錄資料建立搜尋所需的鍵值,也就是選擇一到數個欄位作為「鍵值欄」( Key Fields ),這些欄位值就是鍵值,在經過索引處理後,資料表只需輸入鍵值,就可以快速找到指定記錄。
設定資料表的主索引鍵 - 說明 Access 的主索引鍵就是所謂的「主鍵」( Primary Key ),主鍵是由一到數個欄位所組成的集合,主鍵欄位資料需要是唯一( Unique )資料,當主鍵只擁有一個欄位稱為「簡單鍵」( Simple Key ),如果主鍵擁有多個欄位稱為「複合鍵」( Composite Key )。
設定資料表的主索引鍵 - 原則 選擇主鍵的挑選原則,如下所示: 欄位值需要唯一:主鍵的欄位值需要唯一且不能重複。 必須有資料:主鍵的欄位一定有資料,如果是複合鍵的欄位集合,每一個欄位值都保證一定有資料。 永遠不會改變:欄位值永遠不會改變。例如:【學生資料表】的學號不會改變,如果姓名不重複,姓名也可以作為主鍵,不過姓名通常有可能改變或是同名。 簡短且簡單值:儘可能選擇單一欄位的主鍵,主鍵愈短,不但節省儲存空間,更可加速資料的查詢。簡單是指主鍵的欄位值不包括一些特殊符號。 欄位需要可代表性:主鍵是資料表記錄的一家之主,所以在選擇欄位時,需要選擇一個足以代表資料表的欄位作為主鍵。
設定資料表的主索引鍵 - 範例 例如:在學生資料表的【學號】和【姓名】欄位之中選擇一個作為主鍵,姓名雖然滿足大部分條件,但是姓名可能同名,所以學號是最佳的主鍵選擇,因為學號是唯一、簡單、不會改變且具有代表性。
設定欄位的索引 在資料表設定成主索引鍵的其它欄位,也可以將它設定索引,這種索引稱為次索引( Secondary Index )。換句話說,次索引的排列順序與主索引鍵不同,其主要的目的是為了加速指定欄位的排序和搜尋。
檢視資料表的索引 在設定好資料表的主索引鍵和其它欄位的索引後, Access 提供索引功能,能夠檢視資料表到底設定了哪些索引欄位。

Index