初級シスアド 平成16年度秋 午前問30
A表とB表に対して次のSQL文が行う関係演算はどれか。
SELECT * FROM A, B WHERE A.製品番号 = B.製品番号
A B ┌────┬────┬───┐ ┌────┬──────┐ │得意先名│製品番号│受注数│ │製品番号│製品名 │ ┝━━━━┿━━━━┿━━━┥ ┝━━━━┿━━━━━━┥ │X商店 │ B001 │ 3,000│ │ A001 │テレビ │ ├────┼────┼───┤ ├────┼──────┤ │Y代理店 │ A002 │ 2,000│ │ A002 │ビデオデッキ│ ├────┼────┼───┤ ├────┼──────┤ │Z販売店 │ A001 │ 2,500│ │ B001 │ラジオ │ └────┴────┴───┘ └────┴──────┘
ア 結合
イ 射影
ウ 選択
エ 併合
初級シスアド 平成16年度秋 午前問30
ア 結合とは複数の表から共通する列を結合して1つの表を作成する演算です。
イ 射影とは1つの表から特定の条件にあった列を取り出す演算です。
ウ 選択とは1つの表から特定の条件にあった行を取り出す演算です。
エ 併合とは同じ構造をもつ複数の表を1つの表に結合する演算です。
結合と併合の違いは、結合が複数の表を「横」につなぐのに対して、併合は「縦」につなぐというイメージです。
本問のSQL文では、 「表AとBから製品番号で結合してすべての列を抽出する」と解釈します。実行結果は以下の表になります。
┌────┬────┬──────┬───┐ │得意先名│製品番号│ 製品名 │受注数│ ┝━━━━┿━━━━┿━━━━━━┿━━━┥ │X商店 │ B001 │ラジオ │ 3,000│ ├────┼────┼──────┼───┤ │Y代理店 │ A002 │ビデオデッキ│ 2,000│ ├────┼────┼──────┼───┤ │Z販売店 │ A001 │テレビ │ 2,500│ └────┴────┴──────┴───┘
解答は「ア」になります。
関係演算子である、結合、射影、選択の機能は必ず覚えましょう。また、結合と併合の違いを区別できることも重要です。
2005年02月09日 00:22

