首页 > 数据库 > mysql教程 > 内部与外部连接在SQL中:有什么区别?

内部与外部连接在SQL中:有什么区别?

Linda Hamilton
发布: 2025-01-25 17:33:11
原创
713 人浏览过

Inner vs. Outer Joins in SQL: What's the Difference?

剖析内连接和外连接

虽然 SQL 连接提供了组合数据集的强大机制,但内连接和外连接之间的细微差别可能很神秘。本文深入探讨了它们的独特特征,使您能够全面了解这些连接类型。

内连接:与维恩图相交

内连接,顾名思义,侧重于两个表 A 和 B 之间的共同点。它检索在连接条件中共享匹配值的行。想象一个维恩图,其中 A 和 B 代表圆圈:内部联接提供位于圆圈重叠部分内的数据。

外部联接:联合维恩图

与内部联接相反连接、外连接包括所涉及的表的并集。它们试图从至少一个表中检索所有行,而不管另一个表中是否有匹配的行。生成的数据集类似于维恩图的重叠和非重叠部分覆盖的整个区域。

外连接的变体:LEFT、RIGHT 和 FULL

进一步细化以下概念外连接,SQL提供了三种变体:

  • 左外连接join: 此连接优先检索左表 (A) 中的所有行。对于右表 (B) 中缺失的匹配,它使用 null 值来表示空白。
  • 右外连接: 与左外连接类似,但此连接优先于右表 (B),为左表 (A) 中不匹配的行填充空值。
  • 完整外部join:此联接包含两个表中的所有行,对 A 或 B 中任何不匹配的行诉诸空值。

用示例进行说明

巩固您的理解,让我们考虑一个有两个表 A 和 B 的示例,每个表都有一个列:

A B
1 3
2 4
3 5
4 6

内连接:

SELECT * FROM A INNER JOIN B ON A.A = B.B;
登录后复制
登录后复制

输出:

A B
3 3
4 4

左外连接连接:

SELECT * FROM A LEFT OUTER JOIN B ON A.A = B.B;
登录后复制

输出:

A B
1 null
2 null
3 3
4 4

右外连接:

SELECT * FROM A RIGHT OUTER JOIN B ON A.A = B.B;
登录后复制

输出:

A B
3 3
4 4
null 5
null 6

>完整的外部联接:

SELECT * FROM A INNER JOIN B ON A.A = B.B;
登录后复制
登录后复制

> output:

A B
1 null
2 null
3 3
4 4
null 5
null 6
>了解不同类型的连接类型及其用例对于有效提取和组合至关重要来自各种来源的数据。因此,下次您使用数据库时,请记住内部和外部连接之间的区别,并利用其制作精确且内容丰富的查询的力量。

以上是内部与外部连接在SQL中:有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板