中文Access2000速成教程--1.6 定義“主鍵”
更新時(shí)間:2006年11月03日 00:00:00 作者:
第六講 定義“主鍵” 在中文Access 2000中,可以建立一個(gè)龐大的數(shù)據(jù)信息庫,而要將這些分布于不同表中的數(shù)據(jù)作為一個(gè)“庫”來使用,就需要為各表建立好“主鍵”,從而建立起一個(gè)關(guān)系型數(shù)據(jù)庫系統(tǒng)。這種系統(tǒng)的特點(diǎn)是可以使用查詢、窗體和報(bào)表快速查找數(shù)據(jù),并能組合保存來自各個(gè)不同表中信息。如果要做到這一點(diǎn),每一張表就應(yīng)該包含相同的一個(gè)或一組字段,它些都是保存在表中的、每一條記錄的唯一標(biāo)識(shí),即表的“主鍵”,通常需要在建立數(shù)據(jù)表時(shí)一并制定,以便節(jié)省時(shí)間,因此本章在這里插入了這一小節(jié)。
中文Access 2000允許定義三種類型的主鍵:自動(dòng)編號(hào)、單字段及多字段,它們的特點(diǎn)如下所述。
1.自動(dòng)編號(hào)主鍵
在前面的操作中,您一定注意到了當(dāng)向表中添加一行記錄時(shí),中文Access 2000總是會(huì)自動(dòng)設(shè)置編號(hào),即使您指定了不同的編號(hào),這個(gè)軟件也會(huì)讓您將自動(dòng)編號(hào)字段設(shè)置為自動(dòng)輸入連續(xù)數(shù)字的編號(hào),從而將自動(dòng)編號(hào)字段指定為表的主鍵,這是創(chuàng)建主鍵的最簡(jiǎn)單方法,相信您一定還記得前面就是這樣做。
其實(shí),如果在保存新建的表之前沒有設(shè)置主鍵,那么中文Access 2000將詢問是否要?jiǎng)?chuàng)建主鍵。如果回答為“是”,就將創(chuàng)建“自動(dòng)編號(hào)主鍵”。這種建立主鍵的方法可以應(yīng)用于任何中文Access 2000的表中,而在中文Visual FoxPro 6中不會(huì)如此便利,初學(xué)者掌握起來是比較困難的。
注:指定了表的主鍵之后,為確保其唯一性,中文Access 2000將防止在主鍵字段中輸入重復(fù)值或 Null。Null表示字段中沒有值,或者是未知值。
2.單字段主鍵
如果某些信息相關(guān)的表中擁有相同的字段,而且所包含的都是唯一的值,如ID 號(hào)或零件編號(hào),那么就可以將該字段指定為主鍵。如果選擇的字段有重復(fù)值或 Null 值,Access 2000將不會(huì)設(shè)置其主鍵,為此可運(yùn)行“查找重復(fù)項(xiàng)”查詢可以找出包含重復(fù)數(shù)據(jù)的記錄,然后編輯修改它。
注意:如果通過編輯數(shù)據(jù)仍然不容易消除這些重復(fù)項(xiàng),可以添加一個(gè)自動(dòng)編號(hào)字段并將它設(shè)置為主鍵,或定義多字段主鍵,這是一個(gè)很有用的操作技巧。
3.多字段主鍵
在不能保證任何單字段都包含唯一值時(shí),可以將兩個(gè)或更多的字段指定為主鍵。這種情況最常出現(xiàn)在用于多對(duì)多關(guān)系中關(guān)聯(lián)另外兩個(gè)表的表?!岸鄬?duì)多關(guān)系”是關(guān)系數(shù)據(jù)庫中較難理解的概念,但卻非常實(shí)用,它說明如A 表中的記錄能與 B 表中的許多行記錄匹配,并且B表中的記錄也能與A表中的許多行記錄匹配。此關(guān)系的類型僅能通過定義第三張表(稱作“聯(lián)結(jié)表”)的方法來實(shí)現(xiàn),其主鍵包含二個(gè)字段,即來源于A和B兩張表的外部鍵。多對(duì)多關(guān)系實(shí)際上是使用第三張表的兩個(gè)一對(duì)多關(guān)系。例如,“訂單”表和“產(chǎn)品”表就可能有一個(gè)多對(duì)多的關(guān)系,它是通過“訂單明細(xì)”表中兩個(gè)一對(duì)多關(guān)系來創(chuàng)建的。
注:“一對(duì)多關(guān)系”是最常用的關(guān)系類型。在這種關(guān)系中,A表中的一行記錄能與B表中的許多行記錄匹配,但是在B表中的一行記錄僅能與A表中的一行記錄匹配。若A表中的一行記錄只與B表中的另一行記錄匹配,這就是“一對(duì)一關(guān)系”。因此可將“一對(duì)一關(guān)系”看成是“一對(duì)多關(guān)系”的特例。多對(duì)多關(guān)系、一對(duì)一關(guān)系、一對(duì)多關(guān)系,是應(yīng)用關(guān)系數(shù)據(jù)庫的基本概念。
若要指定或者更改主鍵,可以在“設(shè)計(jì)”視圖中打開相應(yīng)的表,然后從“行選定器”中選擇所要定義為主鍵的那一個(gè)或多個(gè)字段,接著單擊“設(shè)計(jì)視圖”工具欄中的“主鍵”按鈕即可,參見圖29。若要?jiǎng)h除一個(gè)主鍵的話,也只需要在“行選定器”中選定它,接著單擊“設(shè)計(jì)視圖”工具欄中的“主鍵”按鈕,參見圖32。

圖29單擊這個(gè)按鈕
如果您沒有在屏幕上看到“設(shè)計(jì)視圖”工具欄,那么就不能使用“主鍵”按鈕。為了讓它顯示出來,需要單擊“數(shù)據(jù)庫視圖”工具欄中的“視圖”下拉按鈕,然后從下拉菜單中選擇“設(shè)計(jì)視圖”命令,它就會(huì)顯示出來,參見圖32與9-33。

圖30單擊這個(gè)下拉按鈕

圖31選擇這一條命令

圖32“行選定器”的位置
注:選定一個(gè)字段時(shí),只需要單擊“行選定器”中的相應(yīng)方框即可。若要選定多個(gè)字段,可請(qǐng)按Ctrl鍵后,在“行選定器”中分別單擊它們的方框,參見圖34
相關(guān)文章
Access數(shù)據(jù)庫提示OleDbException (0x80004005): 操作必須使用一個(gè)可更新的查詢
使用Access當(dāng)數(shù)據(jù)庫時(shí),這個(gè)問題郁悶了我好幾天啊![OleDbException (0x80004005): 操作必須使用一個(gè)可更新的查詢。]2011-06-06
中文Access2000速成教程--1.2 使用“數(shù)據(jù)庫向?qū)А眲?chuàng)建表
中文Access2000速成教程--1.2 使用“數(shù)據(jù)庫向?qū)А眲?chuàng)建表...2006-11-11
中文Access2000速成教程--1.8 定義表之間的關(guān)系
第八講 定義表之間的關(guān)系前面定義了主鍵,以及相應(yīng)的表后,就可以制定各表部的關(guān)系,從而建立起一個(gè)關(guān)系數(shù)據(jù)庫。的應(yīng)用與管理關(guān)系數(shù)據(jù)庫,中文Access2000具有很強(qiáng)的能力,這正是中文Visual FoxPro 6與中文Excel 2000所不及的。為了建立關(guān)系數(shù)據(jù)庫,首先要建立好各相關(guān)表,接著將它們?nèi)筷P(guān)閉,即可按下列步驟進(jìn)行操作。2006-11-11
用 INNER JOIN語法聯(lián)接多個(gè)表建記錄集
[紅色]用 INNER JOIN語法聯(lián)接多個(gè)表建記錄集...2006-12-12
union這個(gè)連接是有什么用的和INNER JOIN有什么區(qū)別
union這個(gè)連接是有什么用的和INNER JOIN有什么區(qū)別...2006-07-07
恢復(fù)從 Access 2000、 Access 2002 或 Access 2003 中數(shù)據(jù)庫刪除表的方法
恢復(fù)從 Access 2000、 Access 2002 或 Access 2003 中數(shù)據(jù)庫刪除表的方法...2007-08-08

