ホーム » 2012 » 10月 » 26

日別アーカイブ: 2012年10月26日

2012年10月
« 9月   11月 »
 123456
78910111213
14151617181920
21222324252627
28293031  

最近の投稿(電子情報)

アーカイブ

カテゴリー

SQLの説明その2と課題用資料

SQLの命令の説明 part2 と、残り時間は課題のための演習時間とする。

SQL説明2

SQLの説明の残りということで、WHERE節でかける特殊な条件や、 副問い合わせなどについて説明する。

値 IN 集合
 例:SELECT S.業者名, S.所在 FROM S
    WHERE S.業者番号 IN
     (SELECT SG.業者番号
      FROM SG
      WHERE SG.商品番号 = 'G2' AND SG.在庫量 >= 200) ;
文字列 LIKE パターン
 例: SELECT S.業者名 FROM S WHERE S.業者名 LIKE 'AB%' ;
    ワイルドカード文字: % 任意の文字 , _ 1文字
値 BETWEEN 値 AND 値
 例: SELECT G.価格 FROM G G.価格 BETWEEN 100 AND 200 ;

上記の IN の例に示すように、SQLの中の() に、別のSQL命令を記述できる。 この場合は、()の中のSQLを予め実行し、その結果の中に S.業者番号 が含まれれば、 WHERE節が成立する。このような処理が副問い合わせである。

実際には、もう少し複雑な"相関副問い合わせ"というものもあり、

 SELECT G.商品名, G.色, G.価格 FROM G
  WHERE 'S4' IN
   (SELECT SG.業者名 FROM SG
    WHERE SG.商品番号 = G.商品番号 ) ;

上記の副問い合わせの中には、全体の問い合わせのテーブルGが含まれており、 このような副問い合わせでは、()の中を先に実行しておくことはできない。 このため、Gのテーブルについて1件づつG.商品番号を代入して()の中を実行し、 その結果で WHERE 'S4' IN (…) が成立するかチェックされる。 このような問い合わせは、相関副問い合わせと呼ばれる。

注意:この授業で使う実験環境は、SQLiteであり、相関副問い合わせは使えない。

課題用資料