[0255] SQL,関係演算

平成13年度春期 初級システムアドミニストレータ試験より
A表とB表に対する次のSQL文の関係演算はどれか。

SELECT 得意先名, 製品番号, 製品名, 受注数 FROM A, B
 WHERE A.製品番号 = B.製品番号 ORDER BY 得意先名

結合
射影
選択
併合

正解

解説

 データベースの関係演算に関する問題です。

 まずは、射影、選択、結合について説明します。

■ 射影(projection)

 ある表R から指定された列を取り出して、新しい表R’を作成する操作を、射影といいます。



 上の図では、表Rの列Aのみを抽出する選択の操作を行なっています。列Bは選択の対象となっていないので、表R´では現れません。

 これをSQLで表現すると、以下のようになります。

 SELECT R.A
 FROM  R


■ 選択(selection)

 ある表R から指定された行を取り出して、新しい表R’を作成する操作を、選択といいます。



 上の図では、(表Rの列A) = 'BBB' という条件で選択の操作を行なっています。{'AAA', '001'}という行は、選択の条件には該当しないので、表R´では現れません。

 これをSQLで表現すると、以下のようになります。

 SELECT R.A, R.B
 FROM  R
 WHERE  R.A = 'BBB'


■ 結合(join)

 ある2つの表R, S から指定された行を取り出して、新しい表Tを作成する操作を、結合といいます。



 上の図では、(表Rの列B) = (表Sの列B) という条件で結合操作を行なっています。表Sの{'003', 'う'}という行は表Rに該当するデータがないため結合されず、表Tでは現れません。

 これをSQLで表現すると、以下のようになります。

 SELECT R.A, R.B, S.C
 FROM  R, S
 WHERE  R.B = S.B


 問題文では、表A、Bの列「製品番号」同士をイコールで結び、あたらしい表を抽出しようとしています。よって、選択肢アの結合が正解となります。
※ 解説の内容は執筆時点のものであり,含まれている情報の正確性,妥当性について保証するものではありません。ご注意ください・・・

関連する(かもしれない)問題