时 间:2008-4-1 7:49:35
作 者:Microsoft
摘 要:联接表和查询
正 文:
当您在一个查询中包括多个表时,可以使用联接功能来帮助自己获取所需的结果。根据要查看的表与查询中的其他表的关系,联接帮助查询只返回各表中要查看的记录。联接有助于根据各个表在查询中相互关联的方式,让查询仅从每个表中返回您希望看到的记录。本文提供有关联接的概念性信息,讨论各种类型的联接,并为您演示它们的使用方法。
关系数据库本质上由彼此之间存在逻辑关系的表构成。应使用关系并根据各表所共有的字段来联接表。在查询中,关系是由联接表示的。
当您向查询添加表时,Microsoft Office Access 2007 创建以表之间定义的关系为基础的联接。您可以在查询中手动创建联接,即使它们不表示已定义的关系也可以创建。如果使用其他查询(而不是表或除了表)作为查询的数据源,您可以在源查询之间创建联接,也可以在那些查询和用作数据源的任何表之间创建联接。
联接的行为与查询条件类似,它们也建立规则并保证只有与该规则匹配的数据才能包括在查询操作中。与条件不同的是,联接还指定满足联接条件的每两行将在记录集中合并成一行。
有四种基本联接类型:内部联接、外部联接、交叉联接和不等联接。本文介绍可以使用的每种联接类型、使用每种类型的原因以及创建联接的方法。
内部联接是最常见的联接类型。它们根据联接字段中的数据告诉查询:其中一个联接表中的行与另一个表中的行相对应。当运行带有内部联接的查询时,查询操作中将只包括这两个联接表中存在公共值的行。
如果您希望只返回联接的两个表中其联接字段彼此匹配的那些行,则使用内部联接。
在大多数情况下,不需要执行任何操作即可使用内部联接。如果您以前在“关系”窗口 (“关系”窗口:在该窗口中可查看、创建和修改表与查询之间关系。)中创建了表之间的关系,当您在查询设计视图 (设计视图:显示数据库对象(包括:表、查询、窗体、宏和数据访问页)的设计的窗口。在设计视图中,可以新建数据库对象和修改现有数据库对象的设计。)中添加相关表时,Access 将自动创建内部联接。如果实施了参照完整性 (参照完整性:输入或删除记录时,为维持表之间已定义的关系而必须遵循的规则。),Access 还在联接线上为一对多关系 (一对多关系:两个表之间的一种关系,在这种关系中主表中每条记录的主键值都与相关表中多条记录的匹配字段(一个或多个)中的值对应。)中的“一”方表显示“1”,为“多”方表显示无穷大符号 (∞)。
即使尚未创建关系,如果向查询添加两个表,每个表有一个具有相同或兼容数据类型的字段,且其中一个联接字段是主键 (主键:具有唯一标识表中每条记录的值的一个或多个域(列)。主键不允许为 Null,并且必须始终具有唯一索引。主键用来将表与其他表中的外键相关联。),Access 也将自动创建内部联接。在此情况下,由于不实施参照完整性,因此不显示“一”和“多”符号。
如果向查询添加查询,而尚未创建这些查询之间的关系,Access 不会在这些查询之间或在查询与表之间自动创建内部联接。通常,您应当自己创建内部联接。创建内部联接的方法是,将一个数据源中的字段拖动到另一个数据源中的字段上。Access 在两个字段之间显示一条线,以表示联接已经创建。
内部联接的 SQL 语法
内部联接是在 SQL 的 FROM 子句中指定的,如下所示:FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2
INNER JOIN 操作包含以下部分: