ソフトウェア開発技術者平成18年秋期 午前問66

問66

"科目"表と"実習"表に対して,次のSQL文を実行した結果,導出される表はどれか。

SELECT 科目.科目番号
  FROM 科目, 実習
  WHERE 科目.科目番号=実習.科目番号
UNION
SELECT 科目.科目番号
  FROM 科目
  WHERE 単位数 >= 5
66.png/image-size:421×166
  • 66a.png/image-size:73×140
  • 66i.png/image-size:73×117
  • 66u.png/image-size:74×51
  • 66e.png/image-size:73×51

分類

テクノロジ系 » データベース » データ操作

正解

解説

UNIONは、SELECT文の結果を和演算によって統合して1つの表とする句です。

設問のSQL文をUNIONの上下に分けた場合、それぞれ次のような表を返します。

[前半部分]
科目表と実習表で一致する"科目番号"をもつ行だけが選択され、その中から"科目番号"列だけが取り出されます。
66_3.png/image-size:500×75
[後半部分]
科目表の中から"単位数"が5以上である行だけが選択され、その中から"科目番号"列だけが取り出されます。
66_4.png/image-size:286×98
UNIONではこの2つが和演算で統合されるので、結果の表にある科目番号は「1,2,3,5」が適切です。
66_5.png/image-size:349×122
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop