情報処理安全確保支援士 2024年 春期 午前2 問21
問題文
“人事”表に対して次のSQL文を実行したとき、結果として得られる社員番号はどれか。

選択肢
ア:1, 2, 5
イ:1, 3, 5
ウ:1, 3, 4, 5
エ:1, 5(正解)
人事表に対するSQL文の結果として得られる社員番号はどれか【午前2 解説】
要点まとめ
- 結論:SQL文の条件を満たす社員番号は「1」と「5」であるため、正解はエです。
- 根拠:勤続年数が10年以上または年齢が29歳以上、かつ所属が「総務部」である行を抽出しています。
- 差がつくポイント:論理演算子の優先順位と条件の組み合わせを正確に理解し、各行のデータと照合できるかが重要です。
正解の理由
SQL文は「(勤続年数 > 10 OR 年齢 > 28) AND 所属 = '総務部'」という条件で抽出しています。
- 社員番号1:勤続年数13 > 10、所属は総務部 → 条件を満たす。
- 社員番号5:勤続年数7 > 10は×だが、年齢29 > 28で○、所属は総務部 → 条件を満たす。
他の社員は所属が総務部であっても勤続年数と年齢の条件を満たさないか、所属が異なるため除外されます。
よって、社員番号1と5が正解です。
よくある誤解
「OR」と「AND」の優先順位を誤解し、条件を正しく組み合わせられないことが多いです。
また、年齢や勤続年数の比較演算子の意味を取り違えることもあります。
また、年齢や勤続年数の比較演算子の意味を取り違えることもあります。
解法ステップ
- SQL文の条件を分解し、「勤続年数 > 10 OR 年齢 > 28」と「所属 = '総務部'」の2つの条件を理解する。
- 表の各行について、勤続年数と年齢の条件を満たすか確認する。
- 所属が「総務部」であるかを確認する。
- 両方の条件を満たす行の社員番号を抽出する。
- 抽出した社員番号を選択肢と照合し、正しいものを選ぶ。
選択肢別の誤答解説
- ア: 1, 2, 5
社員番号2は勤続年数5、年齢28で条件を満たさず誤り。 - イ: 1, 3, 5
社員番号3は所属が「人事部」であり、条件の「総務部」と異なるため誤り。 - ウ: 1, 3, 4, 5
社員番号3と4は所属が「総務部」ではないため誤り。 - エ: 1, 5
条件を正しく満たす社員番号のみで正解。
補足コラム
SQLの論理演算子は「AND」が「OR」より優先されますが、今回のSQL文は括弧で明示的に優先順位を指定しています。
このように複合条件を扱う際は、括弧を使って意図を明確にすることが重要です。
また、SQLの比較演算子(>、<、=)の意味を正確に理解することも基本ですが非常に重要です。
このように複合条件を扱う際は、括弧を使って意図を明確にすることが重要です。
また、SQLの比較演算子(>、<、=)の意味を正確に理解することも基本ですが非常に重要です。
FAQ
Q: 「OR」と「AND」の優先順位はどうなっていますか?
A: SQLでは「AND」が「OR」より優先されますが、括弧で優先順位を明示できます。今回のSQLは括弧で「OR」が先に評価されます。
A: SQLでは「AND」が「OR」より優先されますが、括弧で優先順位を明示できます。今回のSQLは括弧で「OR」が先に評価されます。
Q: 勤続年数や年齢の条件はどのように評価すればよいですか?
A: それぞれの値が指定された数値より大きいかどうかを比較し、条件を満たすか判断します。
A: それぞれの値が指定された数値より大きいかどうかを比較し、条件を満たすか判断します。
関連キーワード: SQL, 論理演算子、条件式、データ抽出、勤続年数、年齢、所属部署、SELECT文

\ せっかくなら /
情報処理安全確保支援士を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

