内部连接(inner join)和外部连接(outer join)的区别

在SQL中,联接用于比较和组合(字面上是联接),并从数据库中的两个或多个表返回特定的数据行。内部联接从表中查找并返回匹配的数据,而外部联接从表中查找并返回匹配的数据和一些不同的数据。...

在SQL中,联接用于比较和组合(字面上是联接),并从数据库中的两个或多个表返回特定的数据行。内部联接从表中查找并返回匹配的数据,而外部联接从表中查找并返回匹配的数据和一些不同的数据。

内部连接

内部连接关注两个表之间的公共性。使用内部联接时,要比较的两个(或多个)表之间必须至少有一些匹配的数据。内部联接在表中搜索匹配或重叠的数据。找到它后,内部联接组合并将信息返回到一个新表中。

内部联接示例

让我们考虑两个表的常见情况:产品价格和数量。两个表中的公共信息是product name,因此这是连接表的逻辑列。两个表中有一些共同的产品;其他表是其中一个表所独有的,而另一个表中没有匹配项。

Products的内部连接只返回两个表中公用的那些产品的信息。

007Ys3FFgy1gs85xcncfij60d00km0to02

外部连接

外部联接返回一组记录(或行),其中包括内部联接将返回的内容,但也包括在另一个表中找不到相应匹配项的其他行。

有三种类型的外部联接:

  • 左外连接(或左连接)
  • 右外连接(或右连接)
  • 完全外连接(或完全连接)

这些外部联接中的每一个都引用正在比较、组合和返回的数据部分。有时在这个过程中会产生空值,因为有些数据是共享的,而有些数据不是。

左外连接

左外连接将返回表1中的所有数据和所有共享数据(因此,Venn图示例的内部部分),但仅返回表2中的相应数据,即右连接。

左连接示例

在我们的示例数据库中,“左边”(价格表)上有两种产品——橘子和西红柿,它们在“右侧”(数量表)上没有相应的条目。在左连接中,这些行包含在结果集中,在Quantity列中包含NULL。结果中的其他行与内部连接相同。

007Ys3FFgy1gs85xdbwyoj60d00lj3zg02

右外连接

右外联接返回表2的数据和所有共享数据,但只返回表1(即左联接)中的相应数据。

右连接示例

与左连接示例类似,右外连接的输出包括内部连接的所有行和两行(花椰菜和南瓜),它们来自“right”(数量表),它们在左边没有匹配的条目。

007Ys3FFgy1gs85xdz7g3j60d00ljt9n02

完全外连接

流行的MySQL数据库管理系统不支持完全外部联接(full outer join),它将合并并返回两个或多个表中的所有数据,而不管是否存在共享信息。可以将完全联接看作是简单地复制所有指定的信息,但是在一个表中,而不是在多个表中。如果缺少匹配数据,则会生成空值。

007Ys3FFgy1gs85xeptrjj60d00mj0tq02

这些只是基础,但是许多事情都可以通过连接来完成。甚至还有可以排除其他连接的连接!

视频讲解内景(video explaining inner) vs. 外部连接(outer joins)

这段视频解释了各种连接类型之间的区别。它被提示从关于连接的讨论开始的地方开始。

参考文献

  • 内外连接堆栈溢出的区别
  • SQL内部连接-Quackit
  • SQL外部连接-Quackit
  • 使用内部联接-Microsoft SQL Server
  • 使用外部联接-Microsoft SQL Server
  • SQL连接的可视化表示-CodeProject
  • 维基百科:连接(SQL)

  • 发表于 2021-07-07 10:11
  • 阅读 ( 549 )
  • 分类:IT

你可能感兴趣的文章

内球面(inner sphere)和外球面机构(outer sphere mechanism)的区别

...生在不经过取代的配合物之间。 引用 1“RO9。电子传递:内部球体-化学剧本”图书馆文本2019年,在这里提供。“内球面电子转移”维基百科.Org2019年,在这里提供。“配位化合物-氧化还原”《大英百科全书》,2019年,可在此处...

  • 发布于 2020-10-13 12:35
  • 阅读 ( 738 )

内部的(inner)和外球面机构(outer sphere mechanism)的区别

...内球面机构 3. 什么是外球面机构 4. 并排比较-表格形式的内部和外部球体机构 5. 摘要 什么是内球面机构(inner sphere mechani**)? 电子转移的内球机制是通过氧化剂和还原剂反应物之间的共价键发生的氧化还原化学反应。在这里,配...

  • 发布于 2020-10-16 20:41
  • 阅读 ( 541 )

内部的(inner)和外毛细胞(outer hair cells)的区别

...密集得多,而外毛细胞的神经支配却不那么密集。此外,内部毛细胞检测声音并通过听觉神经纤维向大脑发送信号,而外部毛细胞则参与放大来自环境的声音。因此,内部毛细胞比外部毛细胞接收更多的传入输入。 内耳是耳朵...

  • 发布于 2020-10-18 02:45
  • 阅读 ( 555 )

内部联接(inner join)和自然连接(natural join)的区别

内部联接和自然联接的关键区别在于,内部联接根据查询中指定的相等条件提供匹配数据的结果,而自然联接则根据要联接的表中具有相同名称和相同数据类型的列提供结果。 DBMS允许轻松地存储、检索和操作数据。它以表格...

  • 发布于 2020-10-18 12:15
  • 阅读 ( 1701 )

所有程序员都应该知道的13条最重要的sql命令

... “内部”或“外部”语法是可选的。它可以使事情更容易理解,但你不必在绝大多数时间里指定它。 ...

  • 发布于 2021-03-14 06:57
  • 阅读 ( 221 )

如何使用sql连接一次查询多个数据库表

... 默认/内部联接 ...

  • 发布于 2021-03-27 04:02
  • 阅读 ( 295 )

参加(join)和内部连接(inner join)的区别

连接与内部连接 在这个通信驱动的世界里,我们显然需要处理data in an efficient manner as communication is all about data tran**ission. To do this, we have databases such as MS Access, SQL Server, Oracle, etc to store and retrieve our data for our day-to-day purposes. Have you...

  • 发布于 2021-06-24 03:08
  • 阅读 ( 215 )

内部的(inner)和外行星(outer planets)的区别

...小时(一天的时间周期是与地球上标准的24小时日相比。)内部行星绕太阳运行的时间较少,而遥远的行星需要更多的时间,因为它们必须覆盖更多的地面。例如,木星需要164个地球年才能完成一个轨道! 摘要 内部行星是那些离...

  • 发布于 2021-06-24 16:25
  • 阅读 ( 467 )

内部的(inner)和外行星(outer planets)的区别

内部的(inner)和外行星(outer planets)的区别 太阳系是一个由八颗行星、卫星、小行星和其他围绕太阳运行的天体组成的系统。在我们的太阳系之外,已经发现了数千颗围绕其宿主恒星运行的系外行星。一些宿主恒星可能有几十颗行...

  • 发布于 2021-06-27 20:02
  • 阅读 ( 355 )

内部的(inner)和外眶复合体(outer orbital complexes)的区别

内部主要差异(main difference inner) vs. 外眶复合体(outer orbital complexes) 配位络合物是由一个中心原子或离子被不同的原子或原子团包围而成的分子结构。中心原子通常是过渡金属原子。周围的原子或基团称为配体。这些配体通过配...

  • 发布于 2021-06-29 13:10
  • 阅读 ( 252 )
cdpc739517
cdpc739517

0 篇文章

相关推荐