令和6年度 春期 午前Ⅱ 問21
データベース
SQLに関する問題
“人事”表に対して次の SQL 文を実行したとき,結果として得られる社員番号はどれか。
人事
| 社員番号 | 所属 | 勤続年数 | 年齢 |
|---|---|---|---|
| 1 | 総務部 | 13 | 31 |
| 2 | 総務部 | 5 | 28 |
| 3 | 人事部 | 11 | 28 |
| 4 | 営業部 | 8 | 30 |
| 5 | 総務部 | 7 | 29 |
〔SQL 文〕
SELECT 社員番号 FROM 人事 WHERE (勤続年数 > 10 OR 年齢 > 28) AND 所属 = '総務部'
- ア1,2,5
- イ1,3,4,5
- ウ1,3,5
- エ1,5
答えと解説を見る
✓ これが正解エ1,5
解説
括弧内の OR を先に評価し、総務部で絞ると 1 と 5 です。
この SQL 文の WHERE 句は、括弧の中の OR を先に評価し、その結果と所属が総務部であるという条件を AND で結びます。1行ずつ確かめます。社員番号 1 は勤続年数 13 で 10 を超えるので括弧内が真、所属も総務部なので残ります。社員番号 2 は勤続年数 5、年齢 28 です。28 > 28 は偽なので括弧内は偽になり、除かれます。社員番号 3 は勤続年数 11 で括弧内は真ですが、人事部なので除かれます。社員番号 4 は年齢 30 で括弧内は真ですが、営業部なので除かれます。社員番号 5 は年齢 29 で括弧内が真、所属も総務部なので残ります。したがって結果は 1 と 5 です。比較演算子の > は等しい場合を含まない点に注意します。
ほかの選択肢はなぜ違うのか
- ア1,2,5:1、2、5 は、年齢 > 28 を 28 以上と読み違え、年齢がちょうど 28 の社員番号 2 を条件に合うとした形です。> は等しい値を含まないので、社員番号 2 は選ばれません。
- イ1,3,4,5:1、3、4、5 は、所属が総務部という AND の条件を落とし、括弧の中の OR だけで選んだ形です。社員番号 3 は人事部、4 は営業部なので、実際には結果に入りません。
- ウ1,3,5:1、3、5 は、括弧を無視して、勤続年数 > 10 か、年齢 > 28 かつ総務部か、と読んだ形です。勤続年数 11 の社員番号 3 が入ってしまいますが、人事部なので実際には結果に入りません。
この問題の用語
- OR数学の手法を使って、いくつかの案から最も有利なものを選ぶ考え方です。期待される費用や利益を計算して比べるときに使います。
出典:令和6年度 春期 情報処理安全確保支援士試験 午前Ⅱ 問21
同じ用語が出る問題
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)