SQLの左結合と左外結合の違い - すべての違いを説明します。
目次
データベースは、通常コンピュータシステムに電子的に保存された構造化された情報の組織的なコレクションで構成されています。 SQL Server、Oracle、PostgreSQL、MySQLなど、いくつかの異なるデータベースは、通常データを管理するための言語を使用します。 .
その一つがSQLと呼ばれる言語です。 SQLには、Inner Join、Left Join、Right Joinという形で、さまざまなJoinコマンドがあります。
ご存知の方も多いかと思いますが SQLのJoinは、2つ以上のテーブルから関連するカラムの行を組み立てるために使用されます。 他のバリエーションはどうなんだろうという疑問が湧くかもしれません。
ちょっとわかりにくいですよね!でも、心配しないでください!どういう意味なのか、詳しく説明しますので、それで理解が深まればいいなと思います。
さっそくやってみましょう!
SQLとは何ですか?
SQLとは、Structured Query Language(構造化問い合わせ言語)の略。 様々なデータベースでデータの記述や問い合わせに使われる言語で、テーブルを使って情報を管理し、そのテーブルやビュー、関数、プロシージャなどの関連オブジェクトを問い合わせるための言語を表示することが可能です。
ドナルド・チェンバリンとレイモンド・ボイスは 家元 データを操作するために作った「SQL」。 彼らのモデルは、IBMに勤め、70年代にリレーショナルデータベースを発明したエドガー・フランク・コッドの著作をベースにしています。
当初はSEQUELという名前でしたが、特定の商標の問題でSQLと略されました。 しかし、それでもよければ、SEQUELと呼んでください。
SQLでは、データの挿入、削除、更新、その他のデータベースオブジェクトの作成、削除、変更を行うことができます。 標準のSQLコマンドは、" select"、"delete"、"insert"、"update"、"create"、"drop" .これらは、データベースで必要なことをすべて実現することができます。
さらに、この言語は複数のデータベースで使用され、データやデータベースオブジェクトを扱うのに役立っています。 もし、それがあなたにとって複雑に思えるなら、 初心者の方向けにSQLとは何かを説明したビデオをご紹介します:
データベースは言語がなくても動くのか?
なぜSQLを使うのか?
とてもシンプルなんです。 SQLなくしてデータベースは理解できない。 同じように、SQLはデータベースと通信するためのシステムなので、これがないとデータベースを指示することができないのです。
エスキュービズム などを実行します。 削除・追加・変更 データを作成するためによく使われるシステムです。 捌きやすくなる SQLを使用する標準的なリレーショナルデータベース管理システムには、以下のようなものがあります。 Oracle、Sybase、Microsoft Access、Ingres。
Inner JoinとOuter Joinって何?
さて、まずはジョインとは何かを理解しましょう。 SQLでは、異なるテーブルの内容を結合するために結合が使用されます。 データをどのように統合するか、どのタイプのJoinを使うかを指定することで、さまざまな方法でデータを組み合わせることができます。
インナージョインとは、参加テーブルの両方からすべての行を返すジョインです。 あるテーブルのレコードは、クリティカルな のレコードを、別のテーブルの
この種のJoinでは、両テーブルの標準的なフィールドやカラムをサポートする参加テーブルの行をマッチングするための比較演算子が必要でした。
外側Joinは、片方または両方のテーブルで一致しない行を返すことができます。 基本的には、条件を満たしたすべてのテーブルからすべての行を返します。
Outer Joinsには、さまざまな種類があります。 Left Join、Right Join、Full Outer Joinなどです。
SQLで利用できる結合の重要な機能をまとめた表があります:
ジョインの種類: | 機能 : |
インナージョイン | これは、両方のテーブルに少なくとも1つの一致するものがある場合に行を返します。 |
左外側の結合 | これは、左のテーブルのすべての行を、右のテーブルの一致する行と組み合わせて返すものです。 |
ライトアウタージョイン | これは、右のテーブルのすべての行を、左のテーブルの一致する行と組み合わせて返すものです。 |
フルアウタージョイン | 左外部結合と右外部結合を組み合わせたもので、条件を満たした場合にどちらかのテーブルから行を返す。 |
これは、SQLの4つのJoinの違いを示しています。
Inner JoinとOuter Joinの違い
まだまだありますよ。 内側と外側の結合が大きく異なるのは inner joinsは通常、2つのテーブルが交差する結果になります。 それに対して 外側結合は、2つのテーブルを混在させることになります。
だから、基本的には、 インナージョイン の場合、下図のように2つのデータセットが重なる部分になります。 Inner Joinsでは、両方のテーブルの標準的な行だけを結合します。 一方、Outer Joinsでは、左または右のテーブルに値を持つすべてのレコードを返します。
外側結合は、テーブルの一致する行と一致しない行を含む。 また、外側結合は、テーブルの一致する行と一致しない行を含む。 アウタージョイン が内部結合と異なるのは は、False Match Conditionを管理します。
左アウタージョインは、左アウタージョイン+インナージョインで構成され、右アウタージョインも右アウタージョイン+インナージョインで構成されます。 フルアウタージョインは、以下のように構成されます。 その中でも
左結合(SQLの左外結合と同じか?)
もしかしたら、あなたもSQLの左結合を聞いたことがあるかもしれません。 まあ、同じ左外結合なんですけどね。 同じ機能に対して2つの異なる名称があるのです。
関連項目: 代数式と多項式の違いとは? (解説) - All The Differences左結合はSQLの左外側結合と同じで、1つです。 左結合は左外側結合の略語にすぎません。 外側という言葉があることで、どんな操作なのかがよりわかりやすくなっているだけで、どちらのキーも同じ機能を果たしています。
なぜLeft JoinはLeft Outer Joinと呼ばれるのか?
拡張名で呼び出すか、ショートカット名で呼び出すかのオプションがあります。 それに、同じようなものですからね。
を覚えておいてください。 このJoinは、左側のテーブルのすべての行と、Joinの右側の一致する行を返します。 右辺に一致する辺がない場合、結果はnullとなる。
つまり、AとBという2つのテーブルを結合する場合、SQLの左外部結合は、左側のテーブルであるAにあるすべての行と、右側のもう一方のテーブルBにある一致するすべての行を返します。 つまり、SQL左結合の結果は、常に左側のテーブルの行で構成されています。
JoinとLeft Joinの違い
基本的なことですが、JoinはInner Joinとも呼ばれ、Left JoinはOuter Joinです。
しかし、主な違いは、左結合文は、情報の左側で参照されるテーブルのすべての行を含み、結合する可能性があることです。 一致しない行だけでなく、左のテーブルのすべての行と他のテーブルの一致した行で構成されています。
SQLで左外部結合はいつ使うのか?
異なるテーブルを結合する方法を探しているとします。 また、2つのテーブルを結合し、結果セットに1つのテーブルの一致しない行だけを含めたい場合は、左外側結合句または適切な外側結合句を使用します。 左外側結合を使用すると、左外側結合句の前に指定したテーブルから一致しない行を構成します。
技術的には、左外側のJoinは、Join条件を満たす両方のテーブルからすべての行を識別し、テーブルからマッチしていない行を識別します。
Left Outer Joinは行数を増やすか?
よく聞かれる質問ですが、厳密には「YES」です。
ただし、レフトジョイン 許りに は、左テーブルの行数を増やします。 そしてこれは、右テーブルに複数のマッチがある場合に限ります。 また、分析に必要であれば、1つのクエリで多数の左結合を使用することができます。
左アウタージョインと右アウタージョインの比較
左外側のJoinと右外側のJoinの有意差は 一致しない行を結合する。
つまり、両者の違いは、左外側のJoinは、右側のテーブルまたは条項からマッチした行を含む、Join条項の左側のテーブルのマッチしていない行またはすべてのレコードを含むことです。
一方、右外部結合は、Join句の右側のテーブルから一致しない行を含み、右側からすべての行を返します。
Join句は、Join条件を用いて2つ以上のテーブルからレコードを組み合わせたり、フォームを修正・操作したりします。 このJoin条件は、異なるテーブルのカラムを比較する際にどのようにマッチングさせるかを示します。
例えば、従業員の給与を含むテーブルと従業員の詳細を含むテーブルの間には、標準的なカラムがあります。 これは従業員IDであり、2つのテーブルの結合に役立ちます。
つまり、テーブルが実体で、キーは2つのテーブルの共通リンクで、共同操作に使われると考えればよいでしょう。
関連項目: ドント・スターブ VS ドント・スターブ・トゥギャザー(解説) - すべての違いについてデータベースの勉強は厄介です。 でも、しっかり理解すれば結構簡単なんですよ。
Right JoinとRight Outer Joinの違いは何ですか?
右結合は左結合と似ていますが、右側からテーブル内のすべての行を返し、左側から一致する行を返すという点が異なります。
ここでも、Right JoinとRight Outer Joinに特に違いはなく、Left JoinとLeft Outer Joinに違いがないのと同様です。 要するに、Right Joinという言葉は、Right Outer Joinの略語に過ぎないのです。
outer」キーワードはオプションです。 どちらもデータセットとテーブルを結合するという同じ仕事をします。
左結合ではなく右結合を使用する理由は?
一般的に、右外結合は左外結合に置き換えることができ、追加の機能を実行する必要がないため、あまり使用されません。
SQLをよりセルフ・ドキュメント化しようとする場合、Left JoinではなくRight Joinを使うことを考えるでしょう。
を使うかもしれません。 左結合 を使用して、依存側にNULL行があるクエリに対処します。 ライトジョイン 独立側にnull行が生成される質問に対する
のことです。 ライトアウタージョイン は、あるテーブルを他の多くのテーブルの交差点と組み合わせる必要がある場合にも便利です。
SQLにおけるJoinとUnionの違い
JoinとUnionの違いは、Unionは2つ以上のSELECT文の結果集合を結合するために使用されることです。
Joinはマッチした条件によって多くのテーブルからデータを結合しますが、Joinステートメントを使って結合したデータは新しいカラムになります。
Unionステートメントを使用して結合されたデータは、同じ数の列を持つセットから新しい明確な行を生成します。
最終的な感想
結論から言うと あるある LEFT JOINとLEFT OUTER JOINの違いはありません。 これは、Right JoinとRight Outer Joinにも当てはまります。
どちらのキーも同じ機能を持ち、" outer "はあくまでオプションのキーワードとして使用するものです。 Outer Joinを作成していることを明確にするため、これの使用のみを推奨する人もいます。
だから、結局、指定してもしなくても、まったく変わりません。
その他の興味深い記事
これらの違いについて、よりまとめて知りたい方はこちらをご覧ください。