17-1 おw簡

本節將簡介資料庫(Databases)的基本概念,以便沒有資料庫背景的讀者,能夠進入情況。此外,本章的範例,都會使用微軟的Access資料庫,這是一個具體而微的資料庫系統,只要你有安裝MS Office軟體,就會包含此資料庫系統,簡單易懂且容易拷貝移植。

資料庫是由資料表(Tables)所形成的集合,而資料表則是一筆一筆的記錄(Records 或是 Rows)所成的集合,每筆記錄都包含不同的欄位(Fields 或是 Columns)。一個儲存歌曲資料的典型資料表可以表示如下:

序號 歌曲名稱 主唱者 年份
用心良苦 張宇 1993 
聽海 張惠妹 1998 
牽手 張惠妹 2001 
最熟悉的陌生人 蕭亞軒 2000 
戀人未滿 S.H.E 2002 
I.O.I.O. S.H.E 2002 
11 每次都想呼喊你的名字 永邦 2002 
12 最熟悉的陌生人 蕭亞軒 2000 
13 原來你什麼都不要 張惠妹 1999 
14 窗外的天氣 蕭亞軒 1999 
16 野百合也有春天 永邦 2002 

在上述資料表中,每一個橫列稱為一筆記錄,每一個直行稱為欄位,每一筆記錄在某個特定欄位的值稱為「欄位值」,例如,序號為 4 的記錄,當欄位是「主唱者」時,所對應的欄位值是「張惠妹」。

我們在顯示上列資料表時,是以序號來進行排序顯示,但在資料庫的內部儲存方式中,並不會有特定的排序,所以:

一般而言,當我們從資料表中抓出資料,欄位的順序是根據欄位創造日期的先後,而記錄的順序是根據「主索引」(Primary Key)的欄位來進行排序,每個資料表可以選定一個欄位來做為主索引,而且主索引欄位的欄位值是不能重覆的。以上述歌曲資料表而言,主索引可以是序號,這是對每一首歌獨一無二的數值,可以用來代表某一首特定的歌曲。同理,對於某一屆的同學,我們可以將學號設定成主索引,因為每個學號可用來代表某位學生,而且學號本身是不會重複的。

我們先來看一個簡單的資料庫,這是一個微軟的 Access 資料庫,檔案位置是在 asp/example/database/song01.mdb,開啟後,外觀如下:

如果我們點選 song 的資料表,就可以開啟此表:

在上述資料表中,你可以看到 11 筆記錄,每筆記錄有 4 個欄位,欄位名稱分別是「序號」、「歌曲名稱」、「主唱者」、「年份」,事實上,每個欄位都有特定的資料型態,這些資料型態可以由資料表的「設計檢視」來開啟,我們先關掉資料表,再用右鍵點選 song 資料表的圖示,如下:

開啟資料表的「設計檢視」選項後,你可以看到每個欄位的資料類型,例如「自動編號」、「文字」、「數值」等,如果你將游標放在第二列的「文字」,就可以看到和「文字」類型相關的選項,如下:

你也可以點選「文字」右方的小倒三角形,就可以改變這個欄位的資料類型,如下:

由此可知可選用的資料類型約有 10 種,可以列表說明如下:

資料類型說明
文字用來儲存文字資料,例如姓名、身份證字號、密碼、地址等。最大長度只有 255 字元。
備忘也是用來儲存文字資料,最大長度可達 64,000 字元,但是不支援排序功能。
數字儲存數值資料,又可分為位元組、整數、長整數、單精準數、雙精準數、複製編號與小數點等 7 類。
日期/時間儲存時間和日期的資料,可以選用不同的呈現方式。
貨幣儲存貨幣或金額,例如售價、定金等。
自動編號此欄位值都是不重複的正整數,由資料庫自動產生,每新增一筆記錄,資料庫就會以加 1 的方式產生此欄位值,因此不會重複。若有記錄被刪除,此欄位就不會形成連續的整數。通常我們會指定使用具有此種資料類型的欄位為主索引,以便獨一無二地指到某一筆特定的記錄。
是/否此資料類型只能有兩種值:「是」或「否」。可用於記錄是否註冊、是否付款、是否過期等。
OLE 物件可存放各類形的檔案,例如圖片、聲音、動畫、Excel 試算表、Word 文件等。
超連結可以存放超連結或網址。
查閱精靈嚴格地說,這並不是一種資料類型,而是方便輸入文字資料的一種功能。

因此,你可以使用「設計檢視」來新增或刪除欄位,然後再打開資料表,就可以將一筆一筆的資料輸入到資料表內了。最後,別忘了要存檔,再關閉此資料庫。

在本章的其他各節中,我們將說明資料表的查詢、資料表之間的關聯,以及這些關聯對於資料處理的影響。


JScript 程式設計與應用:用於伺服器端的 ASP 環境