數(shù)據(jù)庫是允許彼此邏輯關(guān)系的數(shù)據(jù)表的集合。您可以使用關(guān)系,通過它們共有的字段來連接表。一個表可以是任意數(shù)量的關(guān)系的一部分,但是每個關(guān)系總是具有完全相同的兩個表。在查詢時,關(guān)系由Join表示。
連接指定如何組合數(shù)據(jù)庫中兩個或多個表的記錄。從概念上講,連接非常類似于表關(guān)系。事實上,連接是查詢與表的關(guān)系。
以下是我們將在本章中討論的兩種基本類型的連接:
兩者都可以很容易地從查詢設(shè)計視圖創(chuàng)建。
現(xiàn)在讓我們來了解內(nèi)連接 -
現(xiàn)在讓我們了解什么是外連接-
還有其他連接類型 -
現(xiàn)在讓我們了解左外連接和右外連接 -
現(xiàn)在讓我們轉(zhuǎn)到創(chuàng)建選項卡并從設(shè)計視圖創(chuàng)建一個查詢。選擇tblProjects和tblTask??s,并關(guān)閉“顯示表”對話框,如下面的截圖所示。
從tblProjects中添加ProjectName字段,從tblTask??s表中添加TaskTitle,StartDate和DueDate。
現(xiàn)在讓我們來運行查詢。
我們只顯示幾個項目的記錄。其中幾個項目有很多與該項目相關(guān)的任務(wù),這些信息通過ProjectID字段相關(guān)。
當(dāng)我們在Microsoft Access中創(chuàng)建此查詢時,Access將從我們創(chuàng)建的關(guān)系中獲取此關(guān)系。
默認情況下,它在這兩個表之間創(chuàng)建這兩個字段之間的內(nèi)連接,這就是如何將這些信息與這兩個表相關(guān)聯(lián)。。
它只向我們顯示匹配,所以當(dāng)我們運行此查詢,在tblProjects中列出的很多其他項目不會出現(xiàn)作為我們在這個查詢中設(shè)置的記錄的一部分,這是因為這兩個表如何通過內(nèi)連接(這是默認的Join任何查詢)連接在一起。
然而,如果你想改變關(guān)系,讓我們說你想創(chuàng)建一個外連接,或者換句話說,顯示來自tblProjects的所有項目,該表中的每個記錄,以及來自tblTask??s的所有任務(wù) - 打開連接屬性;我們可以簡單地通過雙擊關(guān)系線來做到這一點。
Access將在“加入屬性”對話框中顯示左表格名稱和右表格名稱。
左列名稱和右列名稱以及第一個單選按鈕僅包含兩個表中的連接字段相等的行,即內(nèi)連接,并且這是在創(chuàng)建關(guān)系時默認選擇的,當(dāng)在查詢中創(chuàng)建連接時,但是您可以更改它。
我們還有兩個其他選項;我們可以包括來自tblProjects的所有記錄,并且只包括來自tblTask??s的那些記錄,其中連接字段相等,這一個是左外連接。
我們有第三個選項,包括來自tblTask??s的所有記錄,只包括來自tblProjects的那些記錄,其中連接的字段是相等的,這一個是右外連接。
這些是您可以從設(shè)計視圖輕松創(chuàng)建的不同類型的連接。讓我們選擇第二個選項,即左外連接,然后單擊Ok。
現(xiàn)在讓我們看看其他步驟 -
當(dāng)您查看關(guān)系線時,您將在tblTask??s中看到一個指向ProjectID的小箭頭。運行此查詢時,您將看到以下結(jié)果。
你可以看到,它顯示了我們每個項目名稱,無論它是否有相關(guān)的任務(wù)。你還會看到一堆空字段。所有這些都將是空白的,因為在tblTask??s中沒有相關(guān)信息,這些字段來自。現(xiàn)在讓我們再次轉(zhuǎn)到設(shè)計視圖,雙擊關(guān)系線。
在“加入屬性”對話框中,選擇用于右外連接的第三個選項,然后單擊“確定”。
現(xiàn)在看看我們的關(guān)系線。你會看到一個小箭頭現(xiàn)在指向tblProjects中的ProjectID。運行此查詢時,您將看到以下結(jié)果。
自聯(lián)接是另一種類型的聯(lián)接。自連接涉及來自相同表內(nèi)的匹配字段。例如,查看員工表,其中有一個主管字段,該字段引用存儲在同一個表中的另一個字段(員工ID)中的相同類型的號碼。
如果我們想知道Kaitlin Rasmussen的主管是誰,我們將必須獲取存儲在該主管字段中的數(shù)字,并在該員工ID字段中的完全相同的表中查找它,以便知道Charity Hendricks是主管。
此表不是關(guān)系數(shù)據(jù)庫的理想結(jié)構(gòu),因為它不是規(guī)范化的。
如果我們有一個情況,我們想創(chuàng)建一個查詢,只列出員工名稱旁邊的主管名稱,沒有一個簡單的方法,我們可以查詢,除非我們創(chuàng)建一個自連接。
要查看自連接,請創(chuàng)建包含以下字段的表并輸入一些數(shù)據(jù)。
在這里,我們要再次創(chuàng)建一個列表,其中包含員工的名字,然后是主管的名字。讓我們從查詢設(shè)計視圖創(chuàng)建一個查詢。
現(xiàn)在,添加tblEmployees表。
關(guān)閉此對話框。
現(xiàn)在,為我們的員工添加名字和姓氏。
我們現(xiàn)在需要一種方法來創(chuàng)建此表與其自身之間的關(guān)系。為此,我們需要打開顯示表對話框,并再次添加tblEmployees。
我們在此查詢視圖中創(chuàng)建了同一個表的另一個副本?,F(xiàn)在,我們需要創(chuàng)建自連接。為此,單擊tblEmployees表中的Supervisor并按住鼠標按鈕,并將其放在該復(fù)制表中的EmployeeID上面 - tblEmployees_1。然后,從該復(fù)制的表中添加名字和姓氏。
現(xiàn)在讓我們來運行查詢,您將看到以下結(jié)果。
它顯示員工的名稱旁邊的主管的名稱。而且,這是如何在Microsoft Access中創(chuàng)建自連接。
更多建議: