「受講」表(学生番号, 科目コード)で、「SELECT 学生番号 FROM 受講 WHERE 科目コード = 'DB' EXCEPT SELECT 学生番号 FROM 受講 WHERE 科目コード = 'OS'」の結果として求められるものはどれか。
選択肢をタップすると、その場で答え合わせできます
正解と解説を見る
正解 CDB を受講しているが、OS は受講していない学生
解説
正解は「DB を受講しているが、OS は受講していない学生」です。EXCEPT は差集合を求める演算で、前の問合せの結果から、後の問合せの結果に含まれる行を取り除きます。ここでは、DB を受講した学生の集合から、OS を受講した学生を除いたものが得られます。「DB と OS の両方を受講している学生」は INTERSECT(共通部分)の結果です。「DB と OS の少なくとも一方を受講している学生」は UNION(和集合)の結果です。「OS を受講しているが、DB は受講していない学生」は、2つの問合せの順序を入れ替えた場合の結果で、差集合は順序によって結果が変わります。
- #SQL
- #差集合
この調子でOS・ネットワーク・データベースを続けて解く
▶ この科目の連続演習へ進む(10問)