📅  最后修改于: 2020-11-20 05:29:51             🧑  作者: Mango
数据库是数据表的集合,这些数据表允许彼此建立逻辑关系。您可以使用关系通过表中共有的字段来连接表。一个表可以是任意数量的关系的一部分,但是每个关系始终只有两个表。在查询中,关系由Join表示。
联接指定如何合并数据库中两个或多个表中的记录。从概念上讲,联接与表关系非常相似。实际上,联接用于查询与表的关系。
以下是我们将在本章中讨论的两种基本连接类型-
两者都可以从查询设计视图轻松创建。
现在让我们了解内部连接–
现在让我们了解什么是外部联接–
还有其他联接类型-
现在让我们了解左外连接和右外连接–
现在让我们转到“创建”选项卡,然后从“设计视图”中创建查询。选择tblProjects和tblTasks并关闭“显示表”对话框,如以下屏幕截图所示。
从tblProjects添加项目名领域,TaskTitle,从tblTasks表起始日期和交货期。
现在让我们运行查询。
我们仅显示一些项目的记录。其中几个项目具有与该项目相关的许多任务,并且此信息通过ProjectID字段关联。
当我们在Microsoft Access中创建此查询时,Access将从我们创建的关系中获取此关系。
默认情况下,它将在这两个字段之间,这两个表之间创建所谓的内部联接,这就是它将这两个表中的信息关联在一起的方式。
它仅向我们显示匹配项,因此当我们运行此查询时, tblProjects中列出了许多其他项目,这些项目并未出现在此查询的记录集中,这是因为这两个表是如何连接的通过该内部联接(再次是所有查询的默认联接)一起进行。
但是,如果要更改关系,可以说要创建一个外部联接,或者换句话说,显示tblProjects中的所有项目,该表中的每个记录,以及来自该表的所有任务tblTasks —开放联接属性;我们只需双击关系线即可做到这一点。
Access将在“联接属性”对话框中显示左表名和右表名。
左列名和右列名以及第一个单选按钮将仅包括两个表中的联接字段相等的行,即内部联接,这是在创建关系,创建联接时默认选择的行。在查询中,但是,您可以更改它。
我们还有两个选择。我们可以包括tblProjects中的所有记录,并且只能包括tblTasks中连接的字段相等且该字段为“左外连接”的那些记录。
我们有第三个选项,包括来自tblTasks的所有记录,并且仅包括来自tblProjects的那些记录,这些记录的联接字段相等,并且这是Right Outer Join。
这些是可以从“设计视图”轻松创建的不同类型的联接。让我们选择第二个选项,即“ Left Outer Join”,然后单击“确定” 。
现在让我们研究其他步骤-
当您查看关系线时,您会在tblTasks中看到一个指向ProjectID的小箭头。运行此查询时,您将看到以下结果。
如您所见,它向我们显示了每个项目名称,无论它是否具有相关任务。您还将看到一堆空字段。所有这些都将是空白的,因为tblTasks中没有相关信息,这些字段来自何处。现在让我们再次进入“设计视图” ,然后双击关系线。
在“连接属性”对话框中,选择“右外部连接”的第三个选项,然后单击“确定” 。
现在看看我们的关系线。您将看到tblProjects中的小箭头现在指向ProjectID 。当您运行此查询时,您将看到以下结果。
自联接是联接的另一种类型。自联接将同一表中的匹配字段相关联。例如,查看带有主管字段的雇员表,该字段引用存储在同一表内另一个字段中的相同编号的号码-雇员ID。
如果我们想知道Kaitlin Rasmussen的主管是谁,我们将必须拿起存储在该主管字段中的号码,并在该员工ID字段的完全相同的表中查找该号码,以便知道Charity Hendricks是主管。
该表不是关系数据库的理想结构,因为它没有规范化。
如果遇到一种情况,我们想创建一个只列出雇员姓名和其主管姓名的查询,除非创建了“自我联接”,否则没有简单的方法可以对其进行查询。
要查看自连接,请创建一个具有以下字段的表并输入一些数据。
在这里,我们要再次创建一个列表,其中使用雇员的名字,然后是主管的名字。让我们从查询设计视图创建查询。
现在,添加tblEmployees表。
关闭此对话框。
现在,为我们的员工添加名字和姓氏。
现在,我们需要一种在此表与其本身之间创建关系的方法。为此,我们需要打开显示表对话框,并再添加一次tblEmployees。
我们在此查询视图中创建了同一表的另一个副本。现在,我们需要创建自连接。为此,请在tblEmployees表中单击Supervisor并按住鼠标按钮,然后将其放在该复制表— tblEmployees_1的EmployeeID顶部。然后,添加该复制表中的名字和姓氏。
现在让我们运行您的查询,您将看到以下结果。
它显示雇员的姓名以及主管的姓名。并且,这就是您在Microsoft Access中创建自我联接的方式。