データ操作 (全67問中11問目)
No.11
"部門別売上"表から,部門コードごと,期ごとの売上を得るSQL文はどれか。
出典:令和3年秋期 問29
分類
テクノロジ系 » データベース » データ操作
正解
イ
解説
まず、どのSQL文にも共通している2つのSELECT文から得られる中間表を考えます。それぞれ以下の結果となります。2つの中間表をINTERSECT(共通)、UNION(和)、CROSS JOIN(直積)、INNER JOIN(内部結合)を行うとそれぞれ以下のようになります。
- INTERSECT(共通)は2つの関係に共通集合を得る演算です。共通する行はないので"結果なし"となります。
- UNION(和)は2つの関係の和集合を得る演算です。1つ目の関係に2つ目の関係が足される感じになるので、設問の問合せ結果と同じになります。
- CROSS JOIN(直積)は、2つの関係に存在する行のすべての組み合わせを得る演算です。どちらの関係も3行ずつあるので、結果表は「3×3=9行」で構成される表となるので誤りです。
- INNER JOIN(内部結合)は、2つの関係を共通する属性で結び付ける演算です。結合相手が存在する行だけが残ります。2つの関係を部門コードで結合すると、結果表は以下のようになるので誤りです。