IPA過去問ドリル

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

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

“従業員”表に対して,SQL 文を実行して得られる結果はどれか。ここで,実線の下線は主キーを表し,表中の NULL は値が存在しないことを表す。 従業員表 従業員コード(主キー)|上司|従業員名 S001|NULL|A S002|S001|B S003|S001|C S004|S003|D S005|NULL|E S006|S005|F S007|S006|G 〔SQL 文〕 SELECT 従業員コード FROM 従業員 X WHERE NOT EXISTS (SELECT * FROM 従業員 Y WHERE X.従業員コード = Y.上司) (注:本サイトでは原問題の表を文字表記に変換しています)

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

正解:ウ

解説

設問の SQL 文は,自分自身の従業員コードを「上司」列の値として持つ行が存在しない従業員,すなわち部下(自分を上司とする従業員)が一人もいない従業員のコードを取得します。表を見ると,上司列に一度でも現れる従業員コードは S001,S003,S005,S006 であり,これら以外の S002,S004,S007 が該当します。

選択肢ごとの解説

  • 誤り。S001,S003,S005,S006 はいずれも他の従業員の上司として上司列に現れており,NOT EXISTS の条件を満たしません。
  • 誤り。S001,S005 も他の従業員の上司として上司列に現れており,NOT EXISTS の条件を満たしません。
  • 正しい。上司列に一度も現れない従業員コード,すなわち部下を持たない S002,S004,S007 が抽出されます。
  • 誤り。S003,S006 はいずれも他の従業員の上司として上司列に現れており,NOT EXISTS の条件を満たしません。
情報処理安全確保支援士の過去問を演習モードで解く