SQLiteは参加します2024 年の最新の入門チュートリアル。このコースでは クロスコネクト - CROSS JOINを,エン - INNER JOINは,外部接続 - OUTER JOIN, について学習できます。
SQLiteはデータベースレコードに複数のテーブルを結合するための句を結合されています。 JOINテーブル手段内の2つのフィールドを組み合わせることにより、共通の値です。
SQLは、接続には3つの主なタイプを定義しています。
クロスコネクト - CROSS JOINを
エン - INNER JOINは
外部接続 - OUTER JOIN
私たちが続ける前に、私たちは二つのテーブルCOMPANYおよびDEPARTMENTがあると仮定しましょう。 私たちは、会社のテーブルのINSERT文を埋めるために使用さ見てきました。 今、私たちは以下に記載されている会社テーブルのレコードを想定してみましょう:
IDのNAME AGEアドレスSALARY ---------- ---------- ---------- ---------- ---------- 1ポール32カリフォルニア20000.0 2アレン25テキサス15000.0 3テディ23ノルウェー20000.0 4マーク25リッチモンド65000.0 5デイビッド27テキサス85000.0 6金22サウスホール45000.0 7ジェームス・24ヒューストン10000.0
別のテーブルには、次のように定義され、DEPARTMENTです。
(表DEPARTMENTのCREATE ID INT PRIMARY KEY NOT NULL、 DEPT CHAR(50)NOT NULLと、 EMP_ID INT NOT NULL );
次は、DEPARTMENT表を満たしたINSERT文であります:
INSERT INTO DEPARTMENT(ID、DEPT、EMP_ID) VALUES(1、 'ITは課金'、1); INSERT INTO DEPARTMENT(ID、DEPT、EMP_ID) VALUES(2、「エンジニアリング」、2)。 INSERT INTO DEPARTMENT(ID、DEPT、EMP_ID) VALUES(3、 '金融'、7);
最後に、我々は、DEPARTMENT表のレコードの次のリストを持っています:
ID DEPT EMP_ID ---------- ---------- ---------- 1請求1 2 Engineerin 2 3ファイナンス7
第二表の各行の最初のテーブルの各行が一致する(CROSS JOIN)クロスコネクト。 入力された表の列のxとyの両方の場合は、それぞれ、結果表は、x + yの列があります。 クロスコネクト(CROSS JOINは)は非常に大きなテーブルを生成することができるので、あなただけの適切な場合にそれらを使用するときは注意して使用する必要があります。
ここでのクロスコネクト(CROSS JOIN)の構文は次のとおりです。
TABLE1のCROSS SELECT ja. FROM table2ののJOIN ja.
次のように上記の表に基づき、我々は、(CROSS JOINは)クロスコネクトを書くことができます:
sqliteの> COMPANY CROSS FROM DEPTがDEPARTMENTのJOIN、EMP_ID、名前を選択します。
上記のクエリは次のような結果が生成されます。
EMP_ID NAME DEPT ---------- ---------- ---------- 1ポール・ITの請求 2ポールEngineerin 7ポール・ファイナンス 1アレンITの請求 2アレンEngineerin 7アレンファイナンス 1テディITの請求 2テディEngineerin 7テディ・ファイナンス 1マークのIT課金 2マークEngineerin 7マーク・ファイナンス 1デビッド・ITの請求 2デビッドEngineerin 7デイビッド・ファイナンス 1キム・ITの請求 2キム・Engineerin 7キム・ファイナンス 1ジェームズ・ITの請求 2ジェームズEngineerin 7ジェームズ・ファイナンス
二つのテーブル(テーブル1とテーブル2)は述語列の値に参加組み合わせた新しい結果表を作成するための内部接続(INNER JOINを)。 クエリは、TABLE1し、各行の各列のテーブル2は、述語マッチングペアに参加満たすすべての行を見つけるために比較されます。 満足すると述語の列の値AとBを結合結果の各一致する行が1行にマージされます。
内部接続は(INNER JOINを)接続の最も一般的なタイプは、デフォルトの接続タイプです。 INNERキーワードはオプションです。
ここでの(INNER JOINを)内部結合の構文は次のとおりです。
SELECT ja. FROM TABLE1 [INNER] conditional_expression ON table2ののJOIN ja.
冗長性を回避し、短い文言を保つためには、USING式接続(INNER JOINを)条件でのステートメントを使用することができます。 この式は、1つまたは複数の列のリストを指定します。
SELECT ja. FROM TABLE1(column1の、ja.)を使用して、table2ののJOIN ja.
自然の接続が(NATURAL JOINを)参加するにはja. USING似ていますが、各列の二つの表の値と同じ値が自動的にの存在をテストします。
SELECT ja. table1のJOIN NATURAL table2のFROM ja.
次のように上記の表に基づき、我々は、(INNER JOINは)内部結合を書くことができます。
sqliteの> SELECT EMP_ID、NAME、DEPTはCOMPANY INNER FROM DEPARTMENTを登録しよう COMPANY.ID = DEPARTMENT.EMP_ID ON;
上記のクエリは次のような結果が生成されます。
EMP_ID NAME DEPT ---------- ---------- ---------- 1ポール・ITの請求 2アレンEngineerin 7ジェームズ・ファイナンス
外部接続(OUTER JOINを)インナージョイン(INNER JOINを)拡張機能です。 SQL標準では、外側の3種類が定義されていますが加わり:LEFT、RIGHT、FULLが、SQLiteはのみ(LEFT OUTER JOINを)外部結合左をサポートしています。
外部接続(OUTER JOINを)NATURALキーワードや表現を使用して、条件および内部接続の方法(INNER JOINを)している同じ、ONの使用を宣言しました。 最初の結果表は、同じ方法で計算されます。 計算はプライマリ接続は、1つまたは2つのテーブルからの外部接続を(OUTER JOINを)完了すると、マージ内の任意のラインに接続されていない、外、NULL値で結合列を結果テーブルに取り付けます。
ここの左外側(LEFT OUTER JOINを)に参加するための構文は次のとおりです。
LEFT OUTER TABLE1 SELECT ja. FROM conditional_expression ON table2ののJOIN ja.
冗長性を回避し、短い文言を維持するためには、外部結合usingステートメント式(OUTER JOINを)条件を使用することができます。 この式は、1つまたは複数の列のリストを指定します。
SELECT ja. LEFT OUTER table1のFROM(column1の、ja.)を使用して、table2ののJOIN ja.
次のように上記の表に基づき、我々は、外部接続を(OUTER JOINを)書くことができます:
sqliteの> SELECT EMP_ID、NAME、DEPT COMPANY LEFT OUTERがDEPARTMENTをJOIN FROM COMPANY.ID = DEPARTMENT.EMP_ID ON;
上記のクエリは次のような結果が生成されます。
EMP_ID NAME DEPT ---------- ---------- ---------- 1ポール・ITの請求 2アレンEngineerin テディ マーク デイビッド キム 7ジェームズ・ファイナンス