SQLの内部結合と外部結合の違い
コンテンツ
内部結合と外部結合はどちらも結合のタイプです。結合は、2つのリレーションまたはテーブルのタプルを比較および結合します。内部結合は自然結合を指定します。つまり、InnerキーワードなしでJoin句を記述すると、自然結合操作が実行されます。内部結合と外部結合の潜在的な違いは、 内部結合 テーブルとテーブルの両方から一致するタプルのみを返します 外部結合 比較された両方のテーブルからすべてのタプルを返します。以下に示す比較チャートを使用して、内部結合と外部結合のその他の違いについて説明します。
- 比較表
- 定義
- 主な違い
- 結論
比較表
比較の根拠 | 内部結合 | 外部結合 |
---|---|---|
ベーシック | 内部結合は、両方のテーブルから一致するタプルのみを出力します。 | 外部結合は、両方のテーブルのすべてのタプルを表示します。 |
データベース | 内部結合によって返されるデータベースの潜在的なサイズは、外部結合よりも比較的小さくなります。 | 外部結合は、比較的大きなデータベースを返します。 |
タイプ | タイプなし。 | 左外部結合、 右外部結合、 および完全外部結合。 |
内部結合の定義
内部結合は、自然結合とも呼ばれます。内部結合は2つのテーブルを比較し、両方のテーブルで一致するタプルを結合します。また、Join句は内部キーワードなしで記述され、自然結合を実行するため、デフォルトの結合タイプとも呼ばれます。 Join句がOuterキーワードなしで記述されている場合、内部結合も実行されます。
内部結合は例で説明できます。 studentテーブルとdepartmentテーブルの2つのテーブルがあります。ここで、内部結合が何を実行するかを理解できます。
SELECT Name、Sem、Deparment_name from Student INNER JOIN Department ON Student.Department_ID = Department.ID。
Student.Department_ID = Department.IDの結果で、これらのタプルのみが取得されることがわかります。したがって、内部結合は2つのテーブルの一致するタプルのみを結合すると言うことができます。
外部結合の定義
内部結合とは異なり、比較されるテーブルの両方で同じ属性値を持つタプルのみが出力されます。外部結合は、両方のテーブルのすべてのタプルを出力します。外部結合には3つのタイプがあります 左外部結合, 右外部結合、そして 完全外部結合.
それらを一つ一つ理解しましょう。最初に、Left Outer Joinを使用します。
Student.Department_ID = Depoartment.IDで、学生の左外部参加部門から名前、Department_nameを選択します。
Student Tableのすべてのタプルが結果に表示されていることがわかります。
名前、学部名を学部の右外側参加学生から選択しますStudent.Department_ID = Depoartment.ID。
Departmentテーブルのすべてのタプルが表示されていることがわかります。Student.Department_ID = Depoartment.IDで、学生の完全外部参加部門から名前、Department_nameを選択します。
両方のテーブルのすべてのタプルが結果に表示されていることがわかります。- 内部結合と外部結合の基本的な違いは、内部結合は両方のテーブルの一致するタプルのみを比較および結合することです。一方、外部結合は、比較される両方のテーブルのすべてのタプルを比較および結合します。
- 内部結合から取得した結果のデータベースサイズは、外部結合よりも小さくなります。
- 外部結合の左外部結合、右外部結合、および完全外部結合の3つのタイプがあります。ただし、内部結合にはそのようなタイプはありません。
結論:
両方の結合は非常に便利です。使用方法は、ユーザーの要件によって異なります。