培训
查询和视图设计器如何表示联接(Visual Database Tools)
适用于:SQL Server
当表格被联接时,查询和视图设计器 会在 关系图窗格中以图形方式展示联接,并在 SQL 窗格中使用 SQL 语法表示。
在“关系图”窗格中,查询和视图设计器显示联接中涉及的数据列之间的联接线。 查询和视图设计器为每个联接条件显示一条联接线。 例如,下图显示了两个联接表之间的联接线:
如果使用多个联接条件联接表,则查询和视图设计器将显示多个联接行,如以下示例所示:
如果未显示联接的数据列(例如,表示表或表结构化对象的矩形最小化或联接涉及表达式),则查询和视图设计器会将联接线置于表示表或表结构化对象的矩形的标题栏中。
联接线中间图标的形状指示表或表结构化对象的联接方式。 如果 join 子句使用非相等运算符(=),则该运算符将显示在联接行图标中。 下表列出了联接行中显示的图标。
连接线图标 | 说明 |
---|---|
![]() |
内部联接(使用等号创建)。 |
![]() |
基于“大于”运算符的内部联接。 |
![]() |
外部联接将包含左侧表示的表中的所有行,即使这些行在相关表中没有匹配项也是如此。 |
![]() |
在外部联接中,即使相关表中没有匹配项,右侧所表示表中的所有行也将被包括在内。 |
![]() |
包括这两个表中的所有行的完整外部联接,即使它们没有相关表中的匹配项。 |
联接行末尾的符号表示联接的类型。 下表列出了联接行末尾显示的联接类型和图标。
联接线两端的“”图标 | 联接类型 |
---|---|
![]() |
一对一联接。 |
![]() |
一对多联接。 |
![]() |
查询和视图设计器无法确定联接类型。 手动创建联接时,通常会发生这种情况。 |
可以在 SQL 语句中以多种方式表示联接。 确切的语法取决于所使用的数据库以及定义联接的方式。
联接表的语法选项包括:
在 FROM 子句中的 JOIN 限定符。 关键字 INNER 和 OUTER 指定联接类型。 此语法是 ANSI 92 SQL 的标准。
例如,如果基于每个表中的
pub_id
列联接publishers
和pub_info
表,生成的 SQL 语句可能如下所示:SELECT * FROM publishers INNER JOIN pub_info ON publishers.pub_id = pub_info.pub_id
如果创建外部连接,词语“LEFT OUTER”或“RIGHT OUTER”将替代“INNER”。
WHERE 子句比较两个表中的列。 如果数据库不支持 JOIN 语法(或者自己输入了该子句),则会显示 WHERE 子句。 如果在 WHERE 子句中创建联接,则两个表名都显示在 FROM 子句中。
例如,以下语句联接
publishers
和pub_info
表。SELECT * FROM publishers, pub_info WHERE publishers.pub_id = pub_info.pub_id