データ操作 (全67問中57問目)
No.57
"科目"表と"実習"表に対して,次のSQL文を実行した結果,導出される表はどれか。
SELECT 科目.科目番号
FROM 科目, 実習
WHERE 科目.科目番号=実習.科目番号
UNION
SELECT 科目.科目番号
FROM 科目
WHERE 単位数 >= 5
FROM 科目, 実習
WHERE 科目.科目番号=実習.科目番号
UNION
SELECT 科目.科目番号
FROM 科目
WHERE 単位数 >= 5
出典:平成18年秋期 問66
分類
テクノロジ系 » データベース » データ操作
正解
イ
解説
UNIONは、SELECT文の結果を和演算によって統合して1つの表とする句です。
設問のSQL文をUNIONの上下に分けた場合、それぞれ次のような表を返します。
[前半部分]
科目表と実習表で一致する"科目番号"をもつ行だけが選択され、その中から"科目番号"列だけが取り出されます。[後半部分]
科目表の中から"単位数"が5以上である行だけが選択され、その中から"科目番号"列だけが取り出されます。UNIONではこの2つが和演算で統合されるので、結果の表にある科目番号は「1,2,3,5」が適切です。
設問のSQL文をUNIONの上下に分けた場合、それぞれ次のような表を返します。
[前半部分]
科目表と実習表で一致する"科目番号"をもつ行だけが選択され、その中から"科目番号"列だけが取り出されます。[後半部分]
科目表の中から"単位数"が5以上である行だけが選択され、その中から"科目番号"列だけが取り出されます。UNIONではこの2つが和演算で統合されるので、結果の表にある科目番号は「1,2,3,5」が適切です。