本節將簡介資料庫(Databases)的基本概念,以便沒有資料庫背景的讀者,能夠進入情況。此外,本章的範例,都會使用微軟的Access資料庫,這是一個具體而微的資料庫系統,只要你有安裝MS Office軟體,就會包含此資料庫系統,簡單易懂且容易拷貝移植。
資料庫是由資料表(Tables)所形成的集合,而資料表則是一筆一筆的記錄(Records 或是 Rows)所成的集合,每筆記錄都包含不同的欄位(Fields 或是 Columns)。一個儲存歌曲資料的典型資料表可以表示如下:
序號 歌曲名稱 主唱者 年份 1 用心良苦 張宇 1993 2 聽海 張惠妹 1998 4 牽手 張惠妹 2001 6 最熟悉的陌生人 蕭亞軒 2000 8 戀人未滿 S.H.E 2002 9 I.O.I.O. S.H.E 2002 11 每次都想呼喊你的名字 永邦 2002 12 最熟悉的陌生人 蕭亞軒 2000 13 原來你什麼都不要 張惠妹 1999 14 窗外的天氣 蕭亞軒 1999 16 野百合也有春天 永邦 2002 在上述資料表中,每一個橫列稱為一筆記錄,每一個直行稱為欄位,每一筆記錄在某個特定欄位的值稱為「欄位值」,例如,序號為 4 的記錄,當欄位是「主唱者」時,所對應的欄位值是「張惠妹」。
我們在顯示上列資料表時,是以序號來進行排序顯示,但在資料庫的內部儲存方式中,並不會有特定的排序,所以:
- 記錄沒有先後次序之分。
- 欄位也沒有先後次序之分。
一般而言,當我們從資料表中抓出資料,欄位的順序是根據欄位創造日期的先後,而記錄的順序是根據「主索引」(Primary Key)的欄位來進行排序,每個資料表可以選定一個欄位來做為主索引,而且主索引欄位的欄位值是不能重覆的。以上述歌曲資料表而言,主索引可以是序號,這是對每一首歌獨一無二的數值,可以用來代表某一首特定的歌曲。同理,對於某一屆的同學,我們可以將學號設定成主索引,因為每個學號可用來代表某位學生,而且學號本身是不會重複的。
我們先來看一個簡單的資料庫,這是一個微軟的 Access 資料庫,檔名是 song01.mdb(可由範例光碟內取得),開啟後,外觀如下:
如果我們點選 song 的資料表,就可以開啟此表:
在上述資料表中,你可以看到 11 筆記錄,每筆記錄有 4 個欄位,欄位名稱分別是「序號」、「歌曲名稱」、「主唱者」、「年份」,事實上,每個欄位都有特定的資料型態,這些資料型態可以由資料表的「設計檢視」來開啟,我們先關掉資料表,再用右鍵點選 song 資料表的圖示,如下:
開啟資料表的「設計檢視」選項後,你可以看到每個欄位的資料類型,例如「自動編號」、「文字」、「數值」等,如果你將游標放在第二列的「文字」,就可以看到和「文字」類型相關的選項,如下:
你也可以點選「文字」右方的小倒三角形,就可以改變這個欄位的資料類型,如下:
由此可知可選用的資料類型約有 10 種,可以列表說明如下:
資料類型 說明 文字 用來儲存文字資料,例如姓名、身份證字號、密碼、地址等。最大長度只有 255 字元。 備忘 也是用來儲存文字資料,最大長度可達 64,000 字元,但是不支援排序功能。 數字 儲存數值資料,又可分為位元組、整數、長整數、單精準數、雙精準數、複製編號與小數點等 7 類。 日期/時間 儲存時間和日期的資料,可以選用不同的呈現方式。 貨幣 儲存貨幣或金額,例如售價、定金等。 自動編號 此欄位值都是不重複的正整數,由資料庫自動產生,每新增一筆記錄,資料庫就會以加 1 的方式產生此欄位值,因此不會重複。若有記錄被刪除,此欄位就不會形成連續的整數。通常我們會指定使用具有此種資料類型的欄位為主索引,以便獨一無二地指到某一筆特定的記錄。 是/否 此資料類型只能有兩種值:「是」或「否」。可用於記錄是否註冊、是否付款、是否過期等。 OLE 物件 可存放各類形的檔案,例如圖片、聲音、動畫、Excel 試算表、Word 文件等。 超連結 可以存放超連結或網址。 查閱精靈 嚴格地說,這並不是一種資料類型,而是方便輸入文字資料的一種功能。 因此,你可以使用「設計檢視」來新增或刪除欄位,然後再打開資料表,就可以將一筆一筆的資料輸入到資料表內了。最後,別忘了要存檔,再關閉此資料庫。
MATLAB程式設計:進階篇