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であり、相関副問い合わせは使えない。