- MS Access 教程
- MS Access - 首页
- MS Access - 概述
- MS Access - 关系数据库管理系统 (RDBMS)
- MS Access - 对象
- MS Access - 创建数据库
- MS Access - 数据类型
- MS Access - 创建表
- MS Access - 添加数据
- MS Access - 查询数据
- MS Access - 查询条件
- MS Access - 操作查询
- MS Access - 创建查询
- MS Access - 参数查询
- MS Access - 替代条件
- MS Access - 关联数据
- MS Access - 创建关系
- 一对一关系
- 一对多关系
- 多对多关系
- MS Access - 通配符
- MS Access - 计算表达式
- MS Access - 建立索引
- MS Access - 分组数据
- MS Access - 数据汇总
- MS Access - 联接
- MS Access - 重复记录查询向导
- 不匹配记录查询向导
- MS Access - 创建窗体
- MS Access - 修改窗体
- MS Access - 导航窗体
- MS Access - 组合框
- MS Access - SQL 视图
- MS Access - 格式设置
- MS Access - 控件和属性
- MS Access - 报表基础
- MS Access - 报表格式设置
- MS Access - 内置函数
- MS Access - 宏
- MS Access - 数据导入
- MS Access - 数据导出
- MS Access 有用资源
- MS Access - 快速指南
- MS Access - 有用资源
- MS Access - 讨论
MS Access - 联接
数据库是由多个数据表组成的集合,这些表之间存在逻辑关系。您可以使用关系通过它们共有的字段连接表。一个表可以属于任意数量的关系,但每个关系总是恰好包含两个表。在查询中,关系由联接表示。
什么是联接
联接指定如何组合数据库中来自两个或多个表中的记录。从概念上讲,联接与表关系非常相似。事实上,联接之于查询,如同关系之于表。
本章将讨论以下两种基本的联接类型:
- 内部联接
- 外部联接
这两种联接都可以轻松地通过查询设计视图创建。
内部联接
现在让我们了解内部联接:
- 最常见的联接类型是内部联接,它也是 Microsoft Access 中的默认联接类型。
- 内部联接仅显示两个表中联接字段相等的那些行或记录。
- 此联接类型查看那些公共字段及其包含的数据。它只显示匹配项。
外部联接
现在让我们了解外部联接:
- 外部联接显示一个表中的所有行,以及另一个表中联接字段相等的那些行或记录。
- 换句话说,外部联接显示一个表中的所有行以及另一个表中对应的行。
还有其他联接类型:
左外部联接和右外部联接
现在让我们了解左外部联接和右外部联接:
- 您可以选择将显示所有行的表。
- 您可以创建一个左外部联接,它将包含第一个表中的所有行。
- 您可以创建一个右外部联接,它将包含第二个表中的所有行。
现在让我们转到“创建”选项卡,并从设计视图创建一个查询。选择tblProjects和tblTasks,然后关闭“显示表”对话框,如下图所示。
添加来自tblProjects表的ProjectName字段,以及来自tblTasks表的TaskTitle、StartDate和DueDate字段。
现在让我们运行查询。
我们只显示了少数几个项目的记录。其中一些项目有很多与该项目相关的任务,这些信息通过ProjectID字段相关联。
当我们在 Microsoft Access 中创建此查询时,Access 将使用我们创建的关系。
默认情况下,它创建的是所谓的这两个字段之间的内部联接,这两个表之间的内部联接,这就是它如何将这两个表中的信息关联起来的方式。
它只向我们显示匹配项,因此当我们运行此查询时,tblProjects中列出的许多其他项目不会显示为我们此查询记录集的一部分,这是因为这两个表是如何通过内部联接连接在一起的,而内部联接又是任何查询的默认联接。
但是,如果您想更改关系,假设您想创建一个外部联接,或者换句话说,显示tblProjects中的所有项目,该表中的每个记录,以及tblTasks中的所有任务 - 打开联接属性;我们可以通过双击关系线来简单地做到这一点。
Access 将在“联接属性”对话框中显示左表名和右表名。
左列名和右列名,第一个单选按钮是只包含两个表中联接字段相等的那些行,这就是内部联接,这是在创建关系时,在查询中创建联接时默认选择的,但是,您可以更改它。
我们还有另外两个选项;我们可以包含tblProjects中的所有记录,以及tblTasks中联接字段相等的那些记录,这是一个左外部联接。
我们还有一个选项,包含tblTasks中的所有记录,以及tblProjects中联接字段相等的那些记录,这是一个右外部联接。
这些就是您可以轻松地从设计视图创建的不同类型的联接。让我们选择第二个选项,即左外部联接,然后单击确定。
现在让我们看看其他步骤:
当您查看关系线时,您将看到一个指向tblTasks中ProjectID的小箭头。当您运行此查询时,您将看到以下结果。
您可以看到它向我们显示了每个项目名称,无论它是否具有相关的任务。您还将看到一堆空字段。所有这些都将为空白,因为在tblTasks中没有相关信息,而这些字段来自那里。现在让我们再次转到设计视图并双击关系线。
在“联接属性”对话框中,选择第三个选项,即右外部联接,然后单击确定。
现在看看我们的关系线。您将看到一个小箭头现在指向tblProjects中的ProjectID。当您运行此查询时,您将看到以下结果。
自联接
自联接是另一种类型的联接。自联接关联同一表中匹配的字段。例如,查看包含主管字段的员工表,该字段引用同一表中另一个字段(员工 ID)中存储的相同类型的编号。
如果我们想知道 Kaitlin Rasmussen 的主管是谁,我们将不得不获取该主管字段中存储的编号,并在同一表的员工 ID 字段中查找它,以便知道 Charity Hendricks 是主管。
此表不是关系数据库的理想结构,因为它没有规范化。
如果我们遇到要创建一个查询的情况,该查询只列出员工姓名及其主管的姓名,那么除非我们创建一个自联接,否则我们没有简单的查询方法。
要查看自联接,请创建一个包含以下字段的表并输入一些数据。
在这里,我们想再次创建一个列表,其中包含员工的姓名,然后是主管的姓名。让我们从查询设计视图创建一个查询。
现在,添加tblEmployees表。
关闭此对话框。
现在,添加员工的姓名。
现在我们需要一种方法来创建此表与其自身之间的关系。为此,我们需要打开显示表对话框并再次添加 tblEmployees。
我们在该查询视图中创建了同一表的另一个副本。现在,我们需要创建自联接。为此,请单击tblEmployees表中的主管,按住鼠标按钮,然后将其直接拖放到复制的表tblEmployees_1中的EmployeeID之上。然后,添加该复制表中的姓名。
现在让我们运行您的查询,您将看到以下结果。
它显示了员工的姓名以及他们主管的姓名。这就是您在 Microsoft Access 中创建自联接的方式。