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