SC情報処理安全確保支援士試験 午前Ⅱ

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

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

"人事" 表に対して次のSQL文を実行したとき、 結果として得られる社員番号はどれか。

選択肢

  1. ア
    人事社員番号所属勤続年数 | 年齢1総務部13312総務部5283人事部1284営業部8395総務部729 〔SQL文
  2. イ
    SELECT社員番号FROM人事WHERE (勤続年数 > 10 OR年齢 > 28) AND所属 = 総務部"
  3. ウ
    1、 2.5イ1. 3、 4、 5ウ1、3、.5エ1、. 5
  4. エ
    ー19一
解き方のヒントを見る

SQLの条件式は、かっこの中を先にチェックしよう

この条件は、まず「勤続年数が10年より長い、または年齢が28歳より上」という人を探して、そのうえで「所属が総務部」の人だけに絞る、という意味だよ。入場ゲートで例えると、最初のゲートで「ベテランさん、または29歳以上の人」を通して、次のゲートで「総務部の人だけ通ってね」と確認する感じだね。該当するのは、総務部で勤続年数が13年の社員1と、総務部で年齢が29歳の社員5だよ。

この問題で問われていること

ポイントは、SQLの論理式で AND と OR をどう読むかだよ。特に、かっこがある場合はかっこの中を先に判定するので、条件を左からなんとなく読まずに、どの条件がひとまとまりなのかを落ち着いて確認しよう。

SQL 条件評価

まず OR を評価するより、括弧内をまとめ、その結果に所属条件を AND する。

(勤続>10 OR 年齢>28)\nAND 所属=総務部\n-> 1,5

確認ポイント

  • 社員 3 は人事部なので除外される。
  • 社員 2 は勤続 5 かつ年齢 28 で条件不成立です。
  • 1,5 を選ぶ。
正解と解説を見る

正解

エ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

不正解だよ。1、2、5は総務部の人たちだけど、2は勤続5年で10年超ではなく、年齢も28歳ちょうどで「28歳超」ではないんだ。「超」はその数字より大きいという意味だから、28は入らないよ。映画館の『身長120cm超』なら120cmぴったりは対象外、という感じだね。

選択肢イ

不正解だよ。1、3、4、5は「勤続年数が10年超または年齢が28歳超」という条件だけを見ると合っている人たちだけど、今回はさらに「所属が総務部」という入場条件もあるんだ。お店の割引券で「学生または65歳以上、かつ会員限定」と言われたら、会員じゃない人は外れるよね。3は人事部、4は営業部なので外れるよ。

選択肢ウ

不正解だよ。1、3、5のうち、3は勤続年数11年で前半条件は満たすけど、所属が人事部なんだ。SQLでは最後に「AND 所属 = '総務部'」があるから、総務部の人だけが通れる窓口だと考えよう。3は別の窓口の人なので入れないよ。

選択肢エ(正解)

正解だよ。条件は「勤続年数が10年超または年齢が28歳超」で、さらに「所属が総務部」の人。社員番号1は勤続13年・年齢31歳・総務部なのでOK、社員番号5は年齢29歳・総務部なのでOKだよ。つまり、2つのチェックを両方通過できるのは1と5だけなんだ。

出典:独立行政法人 情報処理推進機構(IPA)令和6年度春期 情報処理安全確保支援士試験 午前Ⅱ 問21(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針