SQL WHERE
WHERE句はレコードをフィルタリングするために使用されます。
指定された条件を満たすレコードのみを抽出するために使用されます。
例
メキシコのすべての顧客を選択します:
SELECT * FROM Customers
WHERE Country='Mexico';
構文
SELECT column1, column2, ...
FROM table_name
WHERE condition;
注:WHERE句はSELECT文だけでなく、UPDATEやDELETEなどでも使用されます!
デモデータベース
以下は例で使用されるCustomersテーブルからの一部です:
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
テキストフィールドと数値フィールド
SQLではテキスト値をシングルクォートで囲む必要があります(ほとんどのデータベースシステムではダブルクォートも許可されます)。
ただし、数値フィールドはクォートで囲むべきではありません:
例
SELECT * FROM Customers
WHERE CustomerID=1;
WHERE句の演算子
検索をフィルタリングするために=演算子以外の演算子を使用することができます。
例
CustomerIDが80より大きいすべての顧客を選択します:
SELECT * FROM Customers
WHERE CustomerID > 80;
WHERE句で使用できる演算子は次の通りです:
| 演算子 | 説明 |
|---|---|
| = | 等しい |
| > | より大きい |
| < | より小さい |
| >= | 以上 |
| <= | 以下 |
| <> | 等しくない。注:SQLのいくつかのバージョンではこの演算子は!=として記述される場合があります |
| BETWEEN | 特定の範囲内 |
| LIKE | パターン検索 |
| IN | 列に対して複数の可能な値を指定する |