查询和视图设计器如何表示联接(Visual Database Tools)

适用于:SQL Server

如果表格被联接,查询和视图设计器工具(Visual Database Tools)会在关系图窗格(Visual Database Tools)中以图形方式表示联接,并在SQL 窗格(Visual Database Tools)中使用 SQL 语法来表示。

图表窗格

在“关系图”窗格中,查询和视图设计器显示联接中涉及的数据列之间的联接线。 查询和视图设计器为每个联接条件显示一条联接线。 例如,下图显示了两个已联接的表之间的连接线:

显示两个表之间的关系的联接线图。

如果使用多个联接条件联接表,则查询和视图设计器将显示多个联接行,如以下示例所示:

使用多个联接条件联接的表的关系图。

如果未显示联接的数据列(例如,表示表或表结构化对象的矩形最小化或联接涉及表达式),查询和视图设计器会将联接线置于表示表或表结构化对象的矩形的标题栏中。

联接线中间图标的形状指示表或表结构化对象的联接方式。 如果 join 子句使用非相等运算符(=),则该运算符将显示在联接行图标中。 下表列出了联接行中显示的图标。

"连接线"图标 DESCRIPTION
内部联接(使用等 = 号创建)。
基于“大于” > 运算符的内部联接。
包括左侧表示的表中的所有行的外部联接,即使这些行在相关表中没有匹配项也是如此。
包括右侧表示的表中的所有行的外部联接,即使这些行在相关表中没有匹配项也是如此。
包含这两个表中的所有行的完整外部联接,即使这些行在相关表中没有匹配项也是如此。

联接行末尾的符号表示联接的类型。 下表列出了联接行末尾显示的联接类型和图标。

连接线末端的图标 联接类型
一对一联接。
一对多联接。
查询和视图设计器无法确定联接类型。 手动创建联接时,通常会发生这种情况。

SQL 窗格

可以在 SQL 语句中以多种方式表示联接。 确切的语法取决于所使用的数据库以及定义联接的方式。

联接表的语法选项包括:

  • JOIN 子句的 FROM 限定符。 关键字 INNER 并 OUTER 指定联接类型。 此语法是 ANSI 92 SQL 的标准。

    例如,如果基于每个表中的 publishers 列联接 pub_infopub_id 表,生成的 SQL 语句可能如下所示:

    SELECT * FROM publishers
    INNER JOIN pub_info ON publishers.pub_id = pub_info.pub_id;
    

    如果创建外部联接,则单词 LEFT OUTERRIGHT OUTER 显示代替 INNER 一词。

  • WHERE 子句比较这两个表中的列。 如果数据库不支持WHERE语法(或者你自己输入该子句),则会出现一个JOIN子句。 如果在 WHERE 条款中创建联接,则这两个表名将出现在 FROM 条款中。

    例如,以下语句联接 publisherspub_info 表。

    SELECT * FROM publishers, pub_info
    WHERE publishers.pub_id = pub_info.pub_id;