情報処理安全確保支援士試験 2022年 秋期 午前221


表Rと表Sに対して、次のSQL文を実行した結果はどれか。
問題画像選択肢画像
(正解)

解説

表Rと表Sに対して、次のSQL文を実行した結果はどれか【午前2 解説】

要点まとめ

  • 結論:SQL文は表Rを基準にLEFT OUTER JOINを行い、Rの全行と一致するSの行を結合するため、の表が正解です。
  • 根拠:LEFT OUTER JOINは左側の表の全行を保持し、右側の表に一致する行がなければNULLを補完するため、Rの全4行が結果に含まれます。
  • 差がつくポイント:JOIN条件の理解とLEFT OUTER JOINの動作を正確に把握し、NULLの扱いと結合結果の行数・内容を見極めることが重要です。

正解の理由

このSQL文は「FROM R LEFT OUTER JOIN S ON R.X = S.X」となっており、表Rの全行を基準に、R.XとS.Xが一致する行を結合します。
  • RのX列はA001, A002, A003, A005の4行。
  • SのX列はA002, A003, A004の3行。
    一致するのはA002とA003のみで、これらはSのZ列の値も結合されます。
    一致しないA001とA005はSの列がNULLで補完されます。
    したがって、結果は4行で、A001とA005のS列はNULL、A002とA003はSの値が表示される表となり、これは選択肢のの表と一致します。

よくある誤解

  • INNER JOINとLEFT OUTER JOINの違いを混同し、結合結果の行数を誤ることがあります。
  • NULL値の扱いを誤解し、結合できない行が結果に含まれないと考える誤りが多いです。

解法ステップ

  1. SQL文のJOIN種類を確認し、LEFT OUTER JOINであることを理解する。
  2. 左側の表Rの全行が結果に含まれることを認識する。
  3. JOIN条件(R.X = S.X)で一致する行を探す。
  4. 一致する行はSの列も結合し、一致しない行はSの列がNULLになることを確認。
  5. 結果の行数と内容を選択肢の表と照合し、正しいものを選ぶ。

選択肢別の誤答解説

  • ア:Rの一部行しか含まれておらず、LEFT OUTER JOINの特徴を満たしていません。
  • イ:Sに存在しないA004の行がRの列にNULLで表示されており、LEFT OUTER JOINの基準がRであることに反します。
  • :Rの全行が含まれ、Sの一致する行は値が入り、一致しない行はNULLで補完されている正しい結果です。
  • エ:A004の行がRの列にNULLで含まれており、LEFT OUTER JOINの基準がRであるため誤りです。

補足コラム

LEFT OUTER JOINはSQLの結合操作の中でもよく使われるもので、左側の表の全行を保持しつつ右側の表の一致する行を結合します。
一致しない右側の行は結果に含まれず、左側の行に対応する右側の列はNULLで埋められます。
この特性を理解することは、データベース設計やクエリ作成において非常に重要です。

FAQ

Q: LEFT OUTER JOINとINNER JOINの違いは何ですか?
A: INNER JOINは両表の条件に一致する行のみを返しますが、LEFT OUTER JOINは左表の全行を返し、一致しない右表の列はNULLで補完します。
Q: NULL値はどのように扱われますか?
A: JOIN条件に一致しない場合、右表の列はNULLで埋められます。NULLは「値が存在しない」ことを示します。

関連キーワード: SQL, LEFT OUTER JOIN, JOIN条件, NULL値, データベース結合, テーブル結合, SQL実行結果
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ