情報処理安全確保支援士試験 令和6年春期午前Ⅱ SQLの実行結果
出典:令和6年春期 午前Ⅱ 問21
分野:データベース / データ操作
"人事"表に対して次のSQL文を実行したとき,結果として得られる社員番号はどれか。
人事
〔SQL文〕
SELECT 社員番号 FROM 人事
WHERE (勤続年数 > 10 OR 年齢 > 28)
AND 所属 = '総務部'
| 社員番号 | 所属 | 勤続年数 | 年齢 |
| 1 | 総務部 | 13 | 31 |
| 2 | 総務部 | 5 | 28 |
| 3 | 人事部 | 11 | 28 |
| 4 | 営業部 | 8 | 30 |
| 5 | 総務部 | 7 | 29 |
- ア:1,2,5
- イ:1,3,4,5
- ウ:1,3,5
- エ:1,5
TSUNAGARU-ADVICE
まず押さえたいこと
このSQLでは、AND条件とOR条件の組合せを正しく読むことが重要です。条件は「勤続年数が10年超、又は年齢が28歳超」のどちらかを満たし、さらに所属が総務部である社員を抽出します。
迷ったときの判断軸
かっこ内の条件を先に判定し、その後に所属が総務部かどうかを確認すると整理しやすくなります。総務部の社員は1、2、5ですが、このうち勤続年数が10年超又は年齢が28歳超を満たすのは1と5です。
科目Bにつなげるために
科目Bでは、SQLの条件式を読むときに、ANDとORの優先関係や、かっこの範囲を正しく追う力が問われます。いきなり全体を見ず、かっこの中、AND条件の順に一つずつ絞り込むとミスを防ぎやすくなります。※DB関連試験向け
SQL文の条件は、次の二つを同時に満たす行を抽出します。
1.
勤続年数 > 10又は年齢 > 282.
所属 = '総務部'総務部の社員は、社員番号1、2、5です。
それぞれ条件を確認すると、社員番号1は勤続年数13なので該当します。社員番号2は勤続年数5、年齢28なので該当しません。社員番号5は年齢29なので該当します。
したがって、結果として得られる社員番号は 1,5 であり、エが適切です。