IPA過去問ドリル

令和4年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問21

テクノロジ/データベース

表 R と表 S に対して,次の SQL 文を実行した結果はどれか。 〔SQL 文〕 SELECT R.X AS A, R.Y AS B, S.X AS C, S.Z AS D FROM R LEFT OUTER JOIN S ON R.X = S.X

令和4年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問21の図

出典:令和4年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問21

正解:ウ

解説

この SQL 文は,表 R を基準に表 S を X で左外部結合しています。左外部結合では,R の全行が結果に含まれ,S に一致する行がない場合は S 側の列(C,D)が NULL になります。R の A001 と A005 は S に X が一致する行がないため C,D が NULL となり,A002 と A003 は S と一致するためそれぞれの値が結合されます。したがって,A001,A002,A003,A005 の4行が結果となる図ウが正しくなります。

選択肢ごとの解説

  • 誤り。この結果は R のうち S と一致しない行(A001,A005)だけを抽出したものであり,左外部結合の結果としては A002,A003 の一致行が欠落しています。
  • 誤り。この結果は R と S が一致する行だけを抽出し,さらに S にしかない A004 の行まで含んでおり,左外部結合ではなく完全外部結合や内部結合とは異なる誤った結果です。
  • 正しい。左外部結合では R の全4行(A001,A002,A003,A005)が結果に含まれ,S と一致しない A001,A005 は C,D が NULL になり,一致する A002,A003 には S の値が入ります。
  • 誤り。この結果には S にしかない A004 の行が含まれていますが,左外部結合では右側の表である S にしかない行は結果に含まれません。
情報処理安全確保支援士の過去問を演習モードで解く