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句をマスターして、効率的にデータを抽出しましょう!
 
  
  
  
  
