SC情報処理安全確保支援士試験 午前Ⅱ
令和7年度春期 情報処理安全確保支援士 午前Ⅱ 問21
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア従業具従業員コード上司従業員名S901 NULL A S002 S001 B S603 S001 C S904 S903 D S005 NULL E S606 S905 F S007 S6066
- イ〔SQL文]
- ウSELECT従業員コードFROM従業員 X WHERE NOT EXISTS (SELECT * FROM従業員 Y WHERE X.従業員コード = Y.上司)
- エアイウエ従業員コード従業員コード| S601 S602 S903 S904 S605 S907 S606
解き方のヒントを見る
「誰の上司にもなっていない従業員(平社員)」を探し出そう
SQLクエリの読み取り問題。「NOT EXISTS」を使って、「他人の上司(マネージャー)として名前が一度も登場しない人」をリストアップしているよ。表から上司欄に名前がない人(S004とS007)を拾い出そう。
この問題で問われていること
「X.従業員コード = Y.上司」が「NOT EXISTS(存在しない)」という式を、「上司テーブルのどこにも載っていない従業員コード」と読み解けるかがポイントだよ。
NOT EXISTS
上司列に一度も現れない従業員コードを探す SQL です。
X.従業員コード = Y.上司\nが存在しない\n-> 部下を持たない
確認ポイント
- S001、 S003、 S005、 S006 は誰かの上司として参照される。
- 結果集合はコード値で見て S004 と S007。
- 選択肢ウを選ぶ。
正解と解説を見る
正解
ウ
出典
問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。
選択肢ア
これは不正解だよ。S001、S003、S005、S006は上司欄に名前が出てくる、つまり誰かの上司になっている人たちだよ。SQLにはNOT EXISTSがあるので、『部下がいる人は通さない』という逆向きの条件になるんだ。
選択肢イ
これは不正解だよ。S001とS005は上司がNULLなので『自分の上司がいない人』、つまり一番上の人を集めている形だよ。でもSQLが探しているのは『誰の上司にもなっていない人』なので、見る場所が違うんだ。
選択肢ウ(正解)
これは正解だよ。このSQLは『この人を上司欄に書いている部下が1人もいない人だけ通す』という門番みたいなものだよ。S002、S004、S007は誰の上司欄にも出てこないので、結果として残るんだ。
選択肢エ
これは不正解だよ。S003とS006は、自分にも上司がいて、さらに自分も誰かの上司になっている中間管理職みたいな人だよ。今回の条件では『誰かの上司になっている時点でアウト』なので、この2人だけを出すのは違うんだ。
出典:独立行政法人 情報処理推進機構(IPA)令和7年度春期 情報処理安全確保支援士試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針