平成29年度秋期 問28 / 80

平成29年度 秋期 応用情報技術者試験 午前 問28

関係 R(ID,A,B,C)の A,C への射影の結果と SQL 文で求めた結果が同じになるように,a に入れるべき字句はどれか。ここで,関係 R を表 T で実現し,表 T に各行を格納したものを次に示す。

T

ID A B C
001 a1 b1 c1
002 a1 b1 c2
003 a1 b2 c1
004 a2 b1 c2
005 a2 b2 c2

〔SQL 文〕

SELECT [ a ] A, C FROM T

キーボード:1〜4 で解答 → 次の問題 ← 前の問題

正解と解説を見る

正解:イ

関係演算の射影では、結果は関係(集合)なので重複する行は 1 つにまとめられます。表 T の A、C を取り出すと次のようになります。

  • 001: (a1, c1)
  • 002: (a1, c2)
  • 003: (a1, c1) ← 001 と重複
  • 004: (a2, c2)
  • 005: (a2, c2) ← 004 と重複

射影の結果は (a1, c1)、(a1, c2)、(a2, c2) の 3 行です。SQL では重複行を除くために DISTINCT を指定します。

選択肢の検討

  • ア: ALL
    誤り。ALL を指定すると重複行も全て出力されるため、(a1, c1) が 2 行出力され、射影の結果と一致しません。

  • イ: DISTINCT
    正しい。DISTINCT を指定すると重複行が 1 行にまとめられ、(a1, c1)、(a1, c2)、(a2, c2) の 3 行となり、射影の結果と一致します。

  • ウ: ORDER BY
    誤り。ORDER BY は結果の並べ替えを指定する句であり、SELECT の直後に書くことはできません。

  • エ: REFERENCES
    誤り。REFERENCES は、表定義で外部キーの参照先を指定するときに使う字句です。


答え

イ: DISTINCT

出典:平成29年度 秋期 応用情報技術者試験 午前 問28

平成29年度秋期の他の問題