2006年08月27日

シスアド講座 第86回 副問い合わせのテクニック

今回はSQLの午後問題でよく出題される副問い合わせのテクニックをご紹介させていただきます。

副問い合わせというのは、SELECT文の中に、もう一つSELECT文が入る二重構造のようになったものです。

表計算で、IF関数の中にIF関数が2重、3重に入る構造がありますが、これに似ている意図考えるとわかりやすいと思います。

出題されるものは、決まっていて、ほとんどがINかEXISTSです。

この区別をしっかりとさせることにより、正答率がアップします。

簡単にいうと、INの前には、必ず列名がきます。()内のSQL文によって得られたデータをINの前の列名に入れるからINです。

EXISTSの場合はEXISTの前に、列名がきません。()内のSELECT文で取り出せれた列名をそのまま使います。

問題には、IN,EXISTSの前に列名があるかどうかだけで解ける問題もあります。過去問題のSQLを確認してみてください。

次に確認するのは、EXISTSは副問い合わせで得られた列名が、
全体のSELECT文のFROMの後の表名の中にある時しか使えないので、それで解ける場合もあります。

最後に、IN,EXISTSの前にNOTがくるかどうかですが、これはパターンはなくて、問題をよく読むしかないです。

時間がない時は、推測で当たる場合も多いですが、2択までしぼれれただけでも、正答率はアップします。


今回のポイントを整理してみると、次のようになります。


(1) SQLの問題の中に()内に入るSELECT文があれば(二重構造になっている)、(SELECT・・・・・・)の前に来るのは、ほとんどがINまたはEXCISTS


(2) (SELECT・・・・・)の前にINが来るときには、必ずINの前に列名が来る。

  ・・・・・・(列名)IN(SELECT・・・・)


(3) (SELECT・・・・・)の前にEXCISTSが来るときには、EXCISTSの前には列名が来ない。

  ・・・・・・EXCISTS(SELECT・・・・)


一度、過去問題にチャレンジしてみてください。
posted by heronaka at 02:32| Comment(0) | TrackBack(0) | 第5章 データベース | このブログの読者になる | 更新情報をチェックする

シスアド講座 第87回 データベース解答の絞り込み法

午後問題でのデータベースの絞り込みの方法を、ご紹介させていただきます。

次にSQLの基本の形を書き、必ずあてはまる法則を紹介します。

SELECT[A]
FROM[B]
WHERE[C]
GROUP BY[D]
ORDER BY[E]


(1) [A][C][D][E]の列名は必ず、[B]の表の中にある列になります。

(2) [D][E]に入る列名は[A]の列名の中にあります。

以上の条件で、絞り込んで、他にヒントになるところを探していけば、本文を読まなくても、設問と語群とデータベースの構造を見るだけでも解答が出せる問題も多いです。

「少しでも正答率の高い解答をスピーディーに選ぶ」も練習を是非お勧めします。
posted by heronaka at 02:41| Comment(0) | TrackBack(0) | 第5章 データベース | このブログの読者になる | 更新情報をチェックする

シスアド講座 第88回 データベース解答の絞り込み法2


次に副問合わせで、よく出題されるINについてのテクニックです。

INは、すぐ後の(SELECT〜)で抽出される列のデータを、INの直前の列名に入れることになります。

そこで、INの前の列名と(SELECT〜)の中の列名は、同じ名前の列名もしくは、名前が違っても同じ内容の列名があてはまります。

データベースの構造を良く見て、絞り込んでいくと答が出る問題も多いのでチャレンジしてみてください。

問題例
H16春問1設問3
posted by heronaka at 02:46| Comment(0) | TrackBack(0) | 第5章 データベース | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。