SC情報処理安全確保支援士試験 午前Ⅱ
令和4年度秋期 情報処理安全確保支援士 午前Ⅱ 問21
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- アs X 2 A00220 A90339 | A90449 |
- イ〔SQL文〕 SELECT R.X AS AR.Y ASB、 S.XASC、 S.ZASD FROM R LEFT OUTER JOIN S ONR.X = S.X
- ウD A9022 A90229 A99339 A90339
- エNULL NULL A90449
解き方のヒントを見る
午前II 問21:LEFT OUTER JOINは「左の表を全員残す」結合だよ
`R LEFT OUTER JOIN S ON R.X = S.X` は、左側にある表 R を主役として考える結合だよ。たとえるなら、R の名簿に載っている人は全員出席扱いにして、S 側に対応する情報があれば一緒に書き足すイメージ。対応する S の行が見つからない場合でも、R の行は消えずに残って、S 側の列だけが `NULL` になるんだ。だから、この問題では A001 と A005 が `NULL` を含む形で残っている結果を選ぼう。
この問題で問われていること
この問題では、LEFT OUTER JOIN が「左側の表を基準にして全行を残す」ことを理解できているかがポイントだよ。右側の表に一致する行がなくても、左側の行は消えない、という感覚を押さえよう。
LEFT OUTER JOIN の結果
R を基準に 4 行残し、A002 と A003 は S と結合、A001 と A005 は S 列が NULL になる。
A001 10 NULL NULL\nA002 20 A002 20\nA003 30 A003 30\nA005 50 NULL NULL
確認ポイント
- S にしかない A004 を単独行で残すのは RIGHT 側発想です。
- 基準は左表 R です。
- ウを選ぶ。
正解と解説を見る
正解
ウ
出典
問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。
選択肢ア
これは不正解だよ。LEFT OUTER JOINでは、R側のXとS側のXが同じ行だけをくっつけるんだ。窓口で番号札Xが一致した人だけ書類を受け取れるイメージだね。この選択肢は、一致しない値まで混ぜたり、必要な列の並びが結果とずれているので違うよ。
選択肢イ
これは不正解だよ。この内容は結果表ではなくSQL文そのものに見えるよ。問題がSQLの実行結果を選ぶ形式なら、答えるべきなのはA・B・C・D列にどんな値やNULLが並ぶかなんだ。料理の完成品を聞かれてレシピを出しているようなものなので、選択肢としては合わないよ。
選択肢ウ(正解)
これは不正解だよ。外部結合だからといって、S表だけにある行まで全部出るわけではないんだ。LEFTは「左のRを主役にする」という意味で、Sにしかないデータは呼ばれないよ。右側だけの人まで会場に入れてしまっているような結果なので間違いだよ。
選択肢エ
これは不正解だよ。LEFT OUTER JOINは「左側の表Rを名簿として全員残し、右側の表Sに同じXがあれば情報を貼る」仕組みなんだ。合う相手がいない行だけS側がNULLになるので、NULLの出方や残る行がこの結果と合っていないよ。
出典:独立行政法人 情報処理推進機構(IPA)令和4年度秋期 情報処理安全確保支援士試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針