MS Access連接

2018-12-23 14:36 更新

數(shù)據(jù)庫(kù)是允許彼此邏輯關(guān)系的數(shù)據(jù)表的集合。您可以使用關(guān)系,通過(guò)它們共有的字段來(lái)連接表。一個(gè)表可以是任意數(shù)量的關(guān)系的一部分,但是每個(gè)關(guān)系總是具有完全相同的兩個(gè)表。在查詢時(shí),關(guān)系由Join表示。

什么是連接

連接指定如何組合數(shù)據(jù)庫(kù)中兩個(gè)或多個(gè)表的記錄。從概念上講,連接非常類似于表關(guān)系。事實(shí)上,連接是查詢與表的關(guān)系。

以下是我們將在本章中討論的兩種基本類型的連接:

  • 內(nèi)連接
  • 外連接

兩者都可以很容易地從查詢?cè)O(shè)計(jì)視圖創(chuàng)建。

內(nèi)連接

現(xiàn)在讓我們來(lái)了解內(nèi)連接 -

  • 最常見(jiàn)的連接類型是內(nèi)部連接,它也是Microsoft Access中的默認(rèn)連接類型。
  • 內(nèi)連接將僅顯示兩個(gè)表中的聯(lián)接字段相等的行或記錄。
  • 此連接類型查看這些公共字段及其中包含的數(shù)據(jù)。它只顯示匹配。
Inner Join

外連接

現(xiàn)在讓我們了解什么是外連接-

  • 外連接顯示一個(gè)表中的所有行,并且只顯示連接字段相等的另一個(gè)表中的行或記錄。
  • 換句話說(shuō),外連接顯示一個(gè)表中的所有行,而只顯示另一個(gè)表中的相應(yīng)行。
Outer Join

還有其他連接類型 -

左外連接和右外連接

現(xiàn)在讓我們了解左外連接右外連接 -

  • 您可以選擇將顯示所有行的表。
  • 您可以創(chuàng)建一個(gè)包含第一個(gè)表中所有行的左外連接。
Left Join
  • 您可以創(chuàng)建一個(gè)包含第二個(gè)表中所有行的右外連接。
Right Join

現(xiàn)在讓我們轉(zhuǎn)到創(chuàng)建選項(xiàng)卡并從設(shè)計(jì)視圖創(chuàng)建一個(gè)查詢。選擇tblProjects和tblTask??s,并關(guān)閉“顯示表”對(duì)話框,如下面的截圖所示。

TblTasks

從tblProjects中添加ProjectName字段,從tblTask??s表中添加TaskTitle,StartDate和DueDate。

Add Project Name

現(xiàn)在讓我們來(lái)運(yùn)行查詢。

Project Details

我們只顯示幾個(gè)項(xiàng)目的記錄。其中幾個(gè)項(xiàng)目有很多與該項(xiàng)目相關(guān)的任務(wù),這些信息通過(guò)ProjectID字段相關(guān)。

  • 當(dāng)我們?cè)贛icrosoft Access中創(chuàng)建此查詢時(shí),Access將從我們創(chuàng)建的關(guān)系中獲取此關(guān)系。

  • 默認(rèn)情況下,它在這兩個(gè)表之間創(chuàng)建這兩個(gè)字段之間的內(nèi)連接,這就是如何將這些信息與這兩個(gè)表相關(guān)聯(lián)。

  • 它只向我們顯示匹配,所以當(dāng)我們運(yùn)行此查詢,在tblProjects中列出的很多其他項(xiàng)目不會(huì)出現(xiàn)作為我們?cè)谶@個(gè)查詢中設(shè)置的記錄的一部分,這是因?yàn)?span>這兩個(gè)表如何通過(guò)內(nèi)連接(這是默認(rèn)的Join任何查詢)連接在一起。

然而,如果你想改變關(guān)系,讓我們說(shuō)你想創(chuàng)建一個(gè)外連接,或者換句話說(shuō),顯示來(lái)自tblProjects的所有項(xiàng)目,該表中的每個(gè)記錄,以及來(lái)自tblTask??s的所有任務(wù) - 打開(kāi)連接屬性;我們可以簡(jiǎn)單地通過(guò)雙擊關(guān)系線來(lái)做到這一點(diǎn)。

Join Properties

Access將在“加入屬性”對(duì)話框中顯示左表格名稱和右表格名稱。

  • 左列名稱和右列名稱以及第一個(gè)單選按鈕僅包含兩個(gè)表中的連接字段相等的行,即內(nèi)連接,并且這是在創(chuàng)建關(guān)系時(shí)默認(rèn)選擇的,當(dāng)在查詢中創(chuàng)建連接時(shí),但是您可以更改它。

  • 我們還有兩個(gè)其他選項(xiàng);我們可以包括來(lái)自tblProjects的所有記錄,并且只包括來(lái)自tblTask??s的那些記錄,其中連接字段相等,這一個(gè)是左外連接。

  • 我們有第三個(gè)選項(xiàng),包括來(lái)自tblTask??s的所有記錄,只包括來(lái)自tblProjects的那些記錄,其中連接的字段是相等的,這一個(gè)是右外連接。

這些是您可以從設(shè)計(jì)視圖輕松創(chuàng)建的不同類型的連接。讓我們選擇第二個(gè)選項(xiàng),即左外連接,然后單擊Ok。

現(xiàn)在讓我們看看其他步驟 -

Other Steps

當(dāng)您查看關(guān)系線時(shí),您將在tblTask??s中看到一個(gè)指向ProjectID的小箭頭。運(yùn)行此查詢時(shí),您將看到以下結(jié)果。

Arrow Pointing Results

你可以看到,它顯示了我們每個(gè)項(xiàng)目名稱,無(wú)論它是否有相關(guān)的任務(wù)。你還會(huì)看到一堆空字段。所有這些都將是空白的,因?yàn)樵趖blTask??s中沒(méi)有相關(guān)信息,這些字段來(lái)自?,F(xiàn)在讓我們?cè)俅无D(zhuǎn)到設(shè)計(jì)視圖,雙擊關(guān)系線。

Related Task

在“加入屬性”對(duì)話框中,選擇用于右外連接的第三個(gè)選項(xiàng),然后單擊“確定”。

Other Steps

現(xiàn)在看看我們的關(guān)系線。你會(huì)看到一個(gè)小箭頭現(xiàn)在指向tblProjects中的ProjectID。運(yùn)行此查詢時(shí),您將看到以下結(jié)果。

Relationship Line

自聯(lián)接

自聯(lián)接是另一種類型的聯(lián)接。自連接涉及來(lái)自相同表內(nèi)的匹配字段。例如,查看員工表,其中有一個(gè)主管字段,該字段引用存儲(chǔ)在同一個(gè)表中的另一個(gè)字段(員工ID)中的相同類型的號(hào)碼。

Self Joins

如果我們想知道Kaitlin Rasmussen的主管是誰(shuí),我們將必須獲取存儲(chǔ)在該主管字段中的數(shù)字,并在該員工ID字段中的完全相同的表中查找它,以便知道Charity Hendricks是主管。

此表不是關(guān)系數(shù)據(jù)庫(kù)的理想結(jié)構(gòu),因?yàn)樗皇且?guī)范化的。

如果我們有一個(gè)情況,我們想創(chuàng)建一個(gè)查詢,只列出員工名稱旁邊的主管名稱,沒(méi)有一個(gè)簡(jiǎn)單的方法,我們可以查詢,除非我們創(chuàng)建一個(gè)自連接。

要查看自連接,請(qǐng)創(chuàng)建包含以下字段的表并輸入一些數(shù)據(jù)。

Create Table

在這里,我們要再次創(chuàng)建一個(gè)列表,其中包含員工的名字,然后是主管的名字。讓我們從查詢?cè)O(shè)計(jì)視圖創(chuàng)建一個(gè)查詢。

現(xiàn)在,添加tblEmployees表。

Add TblEmployees

關(guān)閉此對(duì)話框。

現(xiàn)在,為我們的員工添加名字和姓氏。

Names of Employee

我們現(xiàn)在需要一種方法來(lái)創(chuàng)建此表與其自身之間的關(guān)系。為此,我們需要打開(kāi)顯示表對(duì)話框,并再次添加tblEmployees。

Show Table Dialog Box

我們?cè)诖瞬樵円晥D中創(chuàng)建了同一個(gè)表的另一個(gè)副本?,F(xiàn)在,我們需要?jiǎng)?chuàng)建自連接。為此,單擊tblEmployees表中的Supervisor并按住鼠標(biāo)按鈕,并將其放在該復(fù)制表中的EmployeeID上面 - tblEmployees_1。然后,從該復(fù)制的表中添加名字和姓氏。

Create Self Join

現(xiàn)在讓我們來(lái)運(yùn)行查詢,您將看到以下結(jié)果。

Display Names

它顯示員工的名稱旁邊的主管的名稱。而且,這是如何在Microsoft Access中創(chuàng)建自連接。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)