SQL中JOIN和UNION之间的区别

作者: Laura McKinney
创建日期: 2 四月 2021
更新日期: 5 可能 2024
Anonim
Difference between JOIN and UNION with Example
视频: Difference between JOIN and UNION with Example

内容


JOIN和UNION是SQL中的子句,用于合并两个或更多关系的数据。但是,它们组合数据和所得结果格式的方式有所不同。的 加入 子句结合了两个关系的属性以形成结果元组,而 联盟 子句组合了两个查询的结果。让我们借助下面显示的比较表来讨论JOIN和UNION之间的区别。

  1. 比较表
  2. 定义
  3. 关键差异
  4. 结论

比较表

比较基础加入联盟
基本的JOIN组合了存在于两个不同关系中的元组的属性,它们共享一些公共字段或属性。UNION合并查询中存在的关系的元组。
条件当两个涉及的关系至少具有一个公共属性时,JOIN适用。当查询中存在的列数相同且相应的属性具有相同的域时,则适用UNION。
种类内,全(外),左联接,右联接。UNION和UNION ALL。
影响与所涉及关系的元组的长度相比,所得元组的长度更多。与查询中涉及的每个关系中存在的元组数量相比,结果元组的数量更多。
图表



JOIN的定义

加入 SQL中的子句将两个关系或表中的元组合并在一起,从而导致元组大小变长。结果元组包含两个关系的属性。基于属性之间的公共属性来组合属性。 SQL中JOIN的不同类型是 内联接,左联接,右联接,外联接。

内部联接 只要两个表之间都具有公共属性,就可以合并两个表中的元组。 左联接 产生左表的所有元组和右表的匹配元组。 正确加入 导致右表中的所有元组和左表中的仅匹配元组。 全外连接 导致两个表中的所有元组都具有或不具有匹配的属性。

INNER JOIN与JOIN相同。您也可以删除INNER关键字,而只需使用JOIN执行INNER JOIN。

UNION的定义

UNION是SQL中的设置操作。 UNON合并两个查询的结果。 UNION的结果包括查询中存在的两个关系中的元组。使用两个关系的UNION必须满足的条件是:

  1. 这两个关系必须具有相同数量的属性。
  2. 相应属性的域必须相同。

有两种类型的UNION: 联盟全联盟。使用UNION获得的结果不包含重复项。另一方面,使用UNION ALL获得的结果保留重复项。

  1. JOIN和UNION之间的主要区别是JOIN组合了来自两个关系的元组,而生成的元组包括来自两个关系的属性。另一方面,UNION组合了两个SELECT查询的结果。
  2. JOIN子句仅在所涉及的两个关系中至少有两个共同的属性时才适用。另一方面,当两个关系具有相同数量的属性且对应属性的域相同时,则适用UNION。
  3. 有四种类型的JOIN INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL OUTER JOIN。但是,UNION有两种类型,即UNION和UNION ALL。
  4. 在JOIN中,生成的元组具有较大的大小,因为它包含两个关系中的属性。另一方面,在UNION中,元组的数量增加了,结果包括了查询中存在的两个关系中的元组。

结论:

两者都是数据合并操作,它们用于不同的情况。当我们想要合并具有至少一个共同属性的两个关系的属性时,将使用JOIN。当我们要合并查询中存在的两个关系的元组时,将使用UNION。