1. WHERE句とは?
SQLのWHERE句は、データベースから特定の条件に合致するデータだけを抽出するために使用されます。 例えば、「30歳以上の顧客を取得したい」「特定の都市に住んでいる人の情報を取得したい」といった場合にWHERE句を使います。
2. WHERE句の基本構文
WHERE句の基本的な書き方は以下の通りです。
SELECT 列名1, 列名2 FROM テーブル名 WHERE 条件;
まずは以下のようなテーブルがあるとします。
id | name | age | city |
---|---|---|---|
1 | 田中 | 30 | 東京 |
2 | 鈴木 | 25 | 大阪 |
3 | 佐藤 | 40 | 名古屋 |
4 | 山本 | 22 | 福岡 |
例えば、customers
テーブルから年齢が30歳以上のデータを取得するSQL文は次のようになります。
SELECT name, age FROM customers WHERE age >= 30;
このSQLを実行すると、次のような結果が得られます。
name | age |
田中 | 30 |
佐藤 | 40 |
3. WHERE句のさまざまな条件指定
3.1 比較演算子
WHERE句では、次のような比較演算子を使って条件を指定できます。
演算子 | 説明 | 例 |
= | 等しい | age = 25 |
!= または <> | 等しくない | city != '東京' |
> | より大きい | age > 30 |
>= | 以上 | age >= 30 |
< | より小さい | age < 40 |
<= | 以下 | age <= 40 |
3.2 AND・OR・NOT を使った条件の組み合わせ
複数の条件を組み合わせる場合、AND
や OR
を使います。
AND
:両方の条件を満たすデータを取得OR
:どちらかの条件を満たすデータを取得NOT
:指定した条件を満たさないデータを取得
4. WHERE句の応用
4.1 BETWEENを使った範囲指定
SELECT name, age FROM customers WHERE age BETWEEN 25 AND 35;
このSQLを実行すると、次のような結果が得られます。
name | age |
田中 | 30 |
鈴木 | 25 |
4.2 INを使った複数値の指定
SELECT name, city FROM customers WHERE city IN ('東京', '大阪');
このSQLを実行すると、次のような結果が得られます。
name | city |
田中 | 東京 |
鈴木 | 大阪 |
4.3 LIKEを使ったあいまい検索
SELECT name FROM customers WHERE name LIKE '田%';
このSQLを実行すると、次のような結果が得られます。
name |
田中 |
5. WHERE句の注意点
(1) 文字列はシングルクォートで囲む
例えば、以下のSQLは正しく動作しません。
SELECT name FROM customers WHERE city = 東京; -- エラー
正しくは、シングルクォート '
で囲む必要があります。
SELECT name FROM customers WHERE city = '東京';
(2) NULLの比較にはIS NULLを使う
テーブルの中には、データが入っていない(カラの)状態になっている箇所があることがあります。これをNULL(ヌル)と呼びます。
例えば、NULL
値を比較する場合、=
を使うと正しく判定できません。
SELECT name FROM customers WHERE email = NULL; -- エラー
正しくは、IS NULL
を使います。
SELECT name FROM customers WHERE email IS NULL;
(3) 数値の比較でクォートを使わない
以下のSQLはエラーになります。
SELECT name FROM customers WHERE age = '30'; -- エラー
数値はクォートせずに記述しましょう。
SELECT name FROM customers WHERE age = 30;
一方で、文字列はクォートを使う必要があります。
SELECT name FROM customers WHERE city = '東京'; -- 正しい
6. まとめ
- WHERE句を使うと特定の条件に合致するデータだけを取得できる。
=
,!=
,>
,<
,BETWEEN
,IN
,LIKE
などの条件指定が可能。AND
,OR
,NOT
を組み合わせて複雑な条件を指定できる。- 文字列はシングルクォートで囲む必要がある。
NULL
の比較にはIS NULL
を使う。- 数値はクォートせずに記述する。
WHERE句をマスターして、効率的にデータを抽出しましょう!