彩票走势图

数据库管理工具Navicat Premium使用教程:了解SQL的外部联接

翻译|使用教程|编辑:秦林|2022-10-17 11:26:17.227|阅读 178 次

概述:本篇文章中将几个外部联接的示例,消除你对SQL外部联接的误解和困惑。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>


Navicat Premium正版试用下载

外部联接(Outer Join)是所有 SQL 联接类型中最不为人知的。也许是因为与其他联接类型相比,外部联接的需求较少。无论如何,外部联接本身并没有什么奇特的。正如我们将在这篇文章中看到的几个外部联接的示例,应该足以消除你对它们的任何误解和困惑。

本文将首先讲述 Outer Join 语句的语法和用途,然后会有一些示例说明。

1、OUTER JOIN 语法

当左(表 A)或右(表 B)表记录中存在匹配项时,OUTER JOIN(或 FULL OUTER JOIN)关键字会返回两个联接表的所有记录。下面的 VEN 图描述了潜在的匹配项和 OUTER JOIN 语法:

因此,FULL OUTER JOIN 会从返回两个表中不匹配的行,以及两个表中的匹配行。换句话说,无论两个表的联接字段(Clave)值是否匹配,查询都会返回行。

还是一头雾水?不用担心,我们将在下一节中看看一些示例,就能一清二楚。

更复杂的枚举可能包含其他类型;字符串是最常见的类型,但也支持更复杂的对象。以下是一个用于表示不同环境 URL 的枚举(也是 Java):

2、OUTER JOIN 的实践

在本教程中,我们将使用广为人知的 Northwind 示例数据库。

以下SQL语句选择所有客户和所有订单:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

由 OUTER JOIN 查询生成的结果集的特征之一是,你可能会在任一联接列中看到 Null 值,因为联接列可能出现在一个表中,但不会出现在另一个表中。在下面的屏幕截图中,我们可以看到Navicat Premium 16中上述查询及其结果:

当然,你不会在两个表列中看到 Null,因为值必须至少出现在一个表中。值得注意的是,在 ContactName 列中出现 Null 是有问题的,因为这意味着订单与现有客户无关。这指出数据库设计存在缺陷,很可能是缺少外键约束。

我们的第二个示例是从项目管理数据库中获取数据,即项目经理和项目。以下是 SQL 语句:

SELECT 
    m.name member, 
    p.title project
FROM 
    pm.members m
    FULL OUTER JOIN pm.projects p 
        ON p.id = m.project_id;

同样,我们可以看到 Null 值(至少一个 Null 值)

在这种情况下,结果表明 Jack Daniel 目前没有项目。这是否构成问题将取决于该组织的具体业务。在任何给定时间,项目经理没有项目或未分配项目可能是完全合理的。

3、总结

希望今天的文章能够帮助你了解外部联接在查询中的用途和用法。最后一件要注意的事:外部联接可能会产生非常大的结果集,因此要谨慎使用它们,并加入筛选子句(例如 WHERE)以尽量减少返回的行数。

Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL、Oracle及PostgreSQL数据库,让管理不同类型的数据库更加的方便。了解更多Navicat相关内容和资讯,欢迎访问慧都网获取。


数据库管理工具交流群:765665608   欢迎进群交流讨论

正版数据库管理软件下载、购买、授权咨询,请点这里!


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
Navicat for MySQL

Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。

Navicat for PostgreSQL

Navicat for PostgreSQL是一套专为PostgreSQL设计的强大数据库管理及开发工具

Navicat for Oracle

Navicat for Oracle是一套超强的Oracle数据库系统管理工具,包括数据模型工具、数据或结构同步、导入或导出、和报表,令维护数据的进程更容易。

Navicat Premium

Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。

Navicat for SQL Server

Navicat for SQL Server 是一套专为 Mircosoft SQL Server设计的强大数据库管理及开发工具

title
title
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP