01 / 06
行を絞り込みたい
SELECT は全行を取り出していたね。でも「600円以下のメニューだけ」「めん類だけ」のように、条件に合う行だけほしいことのほうが多い。
JSの if 文にあたる仕事をするのが WHERE だよ。
取り出す・絞り込む
INPUT · スライド
01 / 06
SELECT は全行を取り出していたね。でも「600円以下のメニューだけ」「めん類だけ」のように、条件に合う行だけほしいことのほうが多い。
JSの if 文にあたる仕事をするのが WHERE だよ。
02 / 06
SELECT ... FROM ... WHERE 条件; と、FROM のあとに条件を足すよ。
文字の値は '(シングルクォート)で囲むのがSQLのルール。JSの " と違うから注意!
SELECT * FROM menus WHERE category = 'めん';実行結果
きつねうどん と しょうゆラーメン の2行だけが取り出される
03 / 06
数値の条件には比較演算子が使えるよ。
price < 600 … 600より安いprice <= 600 … 600以下price > 600 … 600より高いJSと似ているけど、「等しい」は === ではなく = 1つなのが大きな違い。
SELECT name, price FROM menus WHERE price <= 600;04 / 06
「等しくない」は <> と書くよ(!= も使える)。
WHERE で行を絞り、SELECT で列を絞る。行と列、両方を自分で選べるようになったね。
SELECT name FROM menus WHERE category <> 'めん';05 / 06
WHERE category = めん; のようにクォートを忘れると、SQLは めん を「値」ではなく「カラムの名前」だと思ってしまい、エラーになる。
数値はそのまま書けるけれど、文字は必ず ' で囲む。この違いを忘れないようにしよう。
-- ダメな例(クォートが無い)SELECT * FROM menus WHERE category = めん;-- 正しい例SELECT * FROM menus WHERE category = 'めん';06 / 06
SELECT name FROM menus WHERE ... は左から右に読みたくなるけれど、コンピュータの中で実際に動く順番は少し違う。
先に FROM でテーブルを決め、次に WHERE で行を絞り、最後に SELECT で見せる列を選ぶ。「まず絞ってから、見せたい列だけ取り出す」という順番で考えると、複雑な条件を書くときにも迷いにくくなるよ。