過去問ハブ🔥 0日
OS・ネットワーク・データベース関係代数・SQL・正規化・トランザクション難易度 標準43 / 50

「受講」表(学生番号, 科目コード)から、科目 'DB' と 'OS' の両方を受講している学生番号を求めたい。SQL 文「SELECT 学生番号 FROM 受講 WHERE 科目コード = 'DB' [ a ] SELECT 学生番号 FROM 受講 WHERE 科目コード = 'OS'」の a に入れるものとして、適切なものはどれか。

選択肢をタップすると、その場で答え合わせできます

正解と解説を見る

正解 CINTERSECT

解説

正解は「INTERSECT」です。INTERSECT は、2つの問合せ結果の両方に含まれる行(共通部分)を返すので、DB を受講した学生と OS を受講した学生の共通部分、つまり両方を受講した学生が得られます。「UNION」は和集合で、DB と OS の少なくとも一方を受講した学生になります。「EXCEPT」は差集合で、DB を受講したが OS は受講していない学生になります。「AND」は2つの SELECT 文をつなぐ演算子として使えず、構文エラーになります。なお、1つの WHERE 句に科目コードが 'DB' かつ 'OS' という条件を書くと、1つの行の値が同時に2つの値になることはないため、結果は常に空になります。

  • #SQL
  • #集合演算

この調子でOS・ネットワーク・データベースを続けて解く

▶ この科目の連続演習へ進む(10問)

この問題の分野を深く学ぶなら

PR情報工学・理系基礎の教科書を探す

詳細を見る

OS・ネットワーク・データベースの問題一覧へ戻る

「関係代数・SQL・正規化・トランザクション」の関連問題