“關系”簡介
在Access數據庫中,不同表中的數據之間都存在一種關系,這種關系將數據庫里各張表中的每條數據記錄都和數據庫中唯一的主題相聯系,使得對一個數據的操作都成為數據庫的整體操作,正所謂“牽一發而動全身”。
就拿上幾課建立的表來說吧,“客戶信息表”中的“公司名稱”和“訂單信息表”中的“訂貨單位”所包含的值有很多是相同的。因為簽了訂單的“訂貨單位”肯定已經是公司的客戶了,這些客戶的名稱也被記載在“客戶信息表”的“公司名稱”字段中。當我們已知一個客戶的名稱時,既可以通過“客戶信息表”知道它的“客戶信息”,也可以通過“訂單信息表”了解它所簽訂的“訂單信息”,所以說“公司名稱”作為紐帶將“客戶資料表”和“訂單信息表”中的相應字段信息連接在了一起,為了把數據庫中表之間的這種數據關系體現出來,Access提供一種建立表與表之間“關系”的方法。用這種方法建立了關系的數據只需要通過一個主題就可以調出來使用,非常方便。
當我們在“客戶信息表”和“訂單信息表”中建立這樣的關系以后,只需要看看“客戶信息表”,在不增加表內容的情況下,就可以看到所有客戶的信息及其所有“訂單”的情況,使這些數據一目了然。
表之間的三種關系
在建立表之間的關系前,我們還是要提一下“關系”的三種類型“一對一”、“一對多”和“多對多”。在Access中,可以在兩個表之間直接建立“一對一”和“一對多”關系,而“多對多”關系則要通過“一對多”關系來實現。我們分別來說說這三種“關系”。
首先是“一對一”關系,比如下面的兩個表:某學校學生月副食補助:
和某學校學生月助學金:
我們降這兩個表中的數據進行匯總生成新的表:“某學校學生月實發金額匯總”:
由于姓名字段可能會出現重復的情況,所以只有通過不可能出現重復的值的字段“學號”,才能將這兩個表唯一地聯系起來,保證“副食補貼”和“助學金”不至于錯誤地發放,這樣“月副食補助表”中的一個學號就只對應“月助學金”中的一個學號,絕對不會弄錯。這樣兩個表的關系很明顯就是“一對一”了。
下面來看看“一對多”關系。在“客戶信息表”和“訂單信息表”中,“訂單信息表”中的“訂貨單位”字段和“客戶信息表”中的“公司名稱”字段中的值都是一樣的。其實只有那些訂貨了的單位才是公司的客戶,所以這兩個表之間是靠客戶公司的名字聯系在一起的。但是每個客戶都可以訂很多份訂單。所以在“客戶信息表”中的一個“公司名稱”就能對應“訂單信息表”中的幾份“訂單”。這樣的關系就是“一對多”。
最后使“多對多”關系,我們知道,書店中有很多書,同時一種書也可以在很多書店里找到。這時“書”和“書店”的關系就是“多對多”關系了。
怎樣在表之間建立關系
現在我們就開始在表之間建立“關系”,首先單擊“工具”菜單下的“關系”命令,彈出“關系”對話框,上面還有一個“顯示表”對話框如下圖,通過“顯示表”對話框可以把需要建立關系的“表”或“查詢”加到“關系”對話框中去。
將兩個表“客戶信息表”和“訂單信息表”都選中,單擊“添加”按鈕把它們都添加到“關系”對話框上,單擊“關閉”按鈕把“顯示表”對話框關閉。以后再需要打開它時,只要在“關系”對話框上單擊鼠標右鍵,選擇“顯示表”命令就可以了。
在“關系”對話框中只有“客戶信息表”和“訂單信息表”的字段列表。怎么建立關系呢?其實表都是由字段構成的,表之間的關系也由字段來聯系。讓不同表中的兩個字段建立聯系以后,表中的其他字段自然也就可以通過這兩個字段之間的關系聯系在一起了。也就是說在“客戶信息表”中的“公司名稱”和“訂單信息表”中的“訂貨單位”兩個字段之間建立關系就可以了。先在“客戶信息表”字段列表中選中“公司名稱”項,然后按住鼠標左鍵并拖動鼠標到“訂單信息表”中的“訂貨單位”項上,松開鼠標左鍵,這時在屏幕上出現“編輯關系”對話框。
這個對話框可以幫助我們編輯所建立的關系,通過左面的列表框可以改變建立關系的兩個字段的來源。可以單擊“新建...”按鈕創建新的關系,或者單擊“聯接類型”為聯接選擇一種聯接類型。單擊“聯接類型”按鈕,在彈出的新對話框中選擇第三項,然后單擊“確定”按鈕就可以了。回到“編輯關系”對話框后單擊“創建”按鈕。
新聞熱點
疑難解答