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

ビューGOODMAKERを用いて検索する次のSELECT文と同等な表を導出するSQL文はどれか。

 CREATE VIEW GOODMAKER(MNO, STATUS, AREA)
     AS SELECT MAKER.MNO, MAKER.STATUS, MAKER.AREA
     FROM MAKER
        WHERE MAKER.STATUS > 20

 SELECT MNO, STATUS、AREA FROM GOODMAKER
     WHERE GOODMAKER.AREA <> ’TOKYO’

 ア  SELECT MAKER.MNO, MAKER.STATUS, MAKER.AREA
 FROM GOODMAKER
    WHERE GOODMAKER.AREA <> ’TOKYO’
    AND  MAKER.STATUS > 20
 イ  SELECT MAKER.MNO, MAKER.STATUS, MAKER.AREA
 FROM MAKER
    WHERE MAKER.AREA <> ’TOKYO’
    AND  MAKER.STATUS > 20
 ウ  SELECT MAKER.MNO, MAKER.STATUS, MAKER.AREA
 FROM MAKER
    WHERE MAKER.AREA <> ’TOKYO’
    OR   MAKER.STATUS > 20
 エ  SELECT MAKER.MNO, MAKER.STATUS, MAKER.AREA
 FROM MAKER
    WHERE MAKER.AREA=’TOKYO’
    OR   MAKER.STATUS > 20


答え イ


解説
問題文のSQL文の前半の
『CREATE VIEW GOODMAKER(MNO, STATUS, AREA)
     AS SELECT MAKER.MNO, MAKER.STATUS, MAKER.AREA
     FROM MAKER
        WHERE MAKER.STATUS > 20』
は、
1行目は、GOODMAKERという仮想のテーブルを作り、その中の要素には「MNOとSTATUSとAREA」があるという意味です。
2行目、3行目は、MAKERというテーブルの「MNOとSTATUSとAREA」要素を取り出すという意味です。
4行目は、取り出す条件で、STATUSが20より大きいという意味です。

後半の
 『SELECT MNO, STATUS、AREA FROM GOODMAKER
     WHERE GOODMAKER.AREA <> ’TOKYO’』
は、
前半で作成したGOODMAKERのビューのうち、AREAがTOKYOでないもの取り出すという意味です。
要約すると、『テーブル:MAKERの、
 (1)STATUSが20より大きい。かつ
 (2)AREAがTOKYO以外。
のデータを取り出し、その要素の「MNOとSTATUSとAREA」でテーブルを作る。』という意味です。

 ア  選択肢では、3行目で「FROM GOODMAKER」となっていますが、“GOODMAKER”というテーブルはそもそも存在しませんので、間違いです。
 イ  選択肢では、3行目、4行目で(1)AND(かつ)(2)になっていて、1行目、2行目も問題なく、問題文のSQL文と同じ結果が得られます。
 ウ  選択肢では、3行目、4行目で上記(1)OR(または)(2)になっているので間違いです。
 エ  選択肢では、3行目が「AREAがTOKYOであること」になっていて、上記(2)と合わないので、間違いです。


キーワード
・SQL文

キーワードの解説

戻る 一覧へ 次へ