比較表
比較基準 | 参加する | 連合 |
---|---|---|
基本 | JOINは、いくつかの共通のフィールドまたは属性を共有する2つの異なる関係に存在するタプルの属性を組み合わせます。 | UNIONは、クエリに存在する関係のタプルを組み合わせます。 |
調子 | JOINは、関係する2つの関係に少なくとも1つの共通の属性がある場合に適用できます。 | UNIONは、クエリに存在する列の数が同じで、対応する属性が同じドメインを持つ場合に適用できます。 |
タイプ | 内部、完全(外部)、左結合、右結合。 | UNIONとUNION ALL。 |
効果 | 結果のタプルの長さは、関係する関係のタプルの長さと比較して大きくなります。 | 結果のタプルの数は、クエリに含まれる各リレーションに存在するタプルの数と比較して多くなります。 |
図 |
JOINの定義
SQLのJOIN句は、2つのリレーションまたはテーブルからのタプルを結合して、タプルサイズを長くします。 結果のタプルには、両方の関係からの属性が含まれています。 属性は、それらの間の共通の属性に基づいて結合されます。 SQLのさまざまな種類の結合は、 内部結合、左結合、右結合、完全外部結合です。
両方のテーブルの間に共通の属性がある限り、 INNER JOINは両方のテーブルのタプルを組み合わせます。 LEFT JOINは、左側のテーブルのすべてのタプルと、右側のテーブルの一致するタプルをもたらします。 RIGHT JOINは、右側のテーブルのすべてのタプルと、左側のテーブルの一致するタプルのみになります。 FULL OUTER JOINは、一致する属性があるかどうかにかかわらず、両方のテーブルからすべてのタプルになります。
INNER JOINはJOINと同じです。 INNERキーワードを削除して、JOINを使用してINNER JOINを実行することもできます。
UNIONの定義
UNIONはSQLの集合演算です。 UNONは2つのクエリの結果を組み合わせます。 UNIONの結果には、クエリに存在する両方の関係からのタプルが含まれます。 満たされなければならない条件は、2つの関係のUNIONをとる:
- 2つの関係は同数の属性を持たなければなりません。
- 対応する属性のドメインは同じでなければなりません。
UNIONには、 UNIONとUNION ALLの 2種類があります。 UNIONを使用して得られた結果には重複は含まれません。 一方、UNION ALLを使用して得られた結果は重複しています。
SQLにおけるJOINとUNIONの主な違い
- JOINとUNIONの主な違いは、JOINが2つの関係からのタプルを結合し、結果として得られるタプルが両方の関係からの属性を含むことです。 一方、UNIONは2つのSELECTクエリの結果を結合します。
- JOIN句は、関係する2つの関係が両方に共通の少なくとも1つの属性を持つ場合にのみ適用できます。 一方、UNIONは、2つの関係が同じ数の属性を持ち、対応する属性のドメインが同じである場合に適用できます。
- 結合内部結合、左結合、右結合、完全外部結合の4つのタイプがあります。 しかし、UNIONにはUNIONとUNION ALLの2種類があります。
- JOINでは、結果のタプルは両方の関係からの属性を含むため、サイズが大きくなります。 一方、UNIONでは、結果としてクエリ内に存在する両方の関係からのタプルが含まれるため、タプルの数が増えます。
結論:
両方ともデータ結合操作であり、さまざまな状況で使用されます。 JOINは、少なくとも1つの共通の属性を持つ2つの関係の属性を結合したい場合に使用されます。 UNIONは、クエリに含まれている2つの関係のタプルを結合するときに使用されます。