概要
- 条件を使って特定のデータを取り出すにはWHERE句を使う
- 各種の演算子が使える
WHERE句
条件に合うデータを取り出す
WHERE句に続いて条件式を指定するとその条件に合うデータのみが取り出される。
SELECT name FROM tbl_address WHERE zip_code = '170-0000';
条件に合うデータを並び替えて取り出す
WHERE句の後ろにORDER BY句を続けて指定することで条件式で抽出したデータを並び替えることができる。
SELECT * FROM tbl_score WHERE score_eigo >= 90 ORDER BY id DESC;
算術演算子
+ - * / % ( )
などが使える(DBMSによる)
SELECT name, (score_kokugo + score_eigo) AS sum FROM tbl_exam;
asで付けた別名をそのままORDER BY句に渡すことができるので、演算結果をソートに利用出来る。たのしい。
SELECT name, (score_kokugo + score_eigo) / 2 AS average FROM tbl_exam ORDER BY average DESC;
論理演算子
AND OR NOTが使える。
文字列を操作する演算子
その他の演算子
BETWEEN ... AND
BETWEEN ... ANDを使うと値の範囲指定が出来る。
(score >= 10) AND (score <= 100)はBETWEEN 10 AND 100と同じである。
SELECT * FROM tbl_exam WHERE score_eigo BETWEEN 90 AND 100;
IS (NOT) NULL
「列名 IS NULL」は指定した列の値がNULLのデータに対しTRUEを返し、そうでなければFALSEを返す。
「列名 IS NOT NULL」は逆の作用をする。
SELECT * FROM tbl_bookprice WHERE price IS NOT NULL;
IN
「列名 IN (...) 」は...にカンマで区切って列挙した値のいずれかに一致する値を持つ行に対しTRUEを返す。
「列名 NOT IN (...)」は逆の作用をする。
SELECT * FROM tbl_exam WHERE id IN (2, 4);