SQL 速習チュートリアル

SQL WHERE 句

1. SQL WHERE 句とは

WHERE 句は、レコードをフィルタリング(絞り込み)するために使用されます。

特定の条件を満たすレコードのみを抽出したい場合に、この WHERE 句を活用します。

1.1 実行例

ここでは、国(Country)が「Mexico」であるすべての顧客を選択します。

/* 国が Mexico の顧客をすべて選択 */
SELECT * FROM Customers
WHERE Country = 'Mexico';

2. WHERE の構文

SELECT column1, column2, ...
FROM table_name
WHERE condition;
WHERE 句は SELECT ステートメントだけでなく、UPDATEDELETE などでも頻繁に使用されます。

3. デモ用データベース

以下は、本ガイドの例題で使用する Customers テーブルの抜粋です。

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

4. テキストフィールド vs 数値フィールド

SQL では、テキスト値(文字列)を扱う際、値をシングルクォート(')で囲む必要があります(ほとんどのデータベースシステムではダブルクォートも許容されます)。

一方で、数値フィールド(Numeric fields)を扱う場合は、引用符で囲んではいけません。

4.1 実行例(数値指定)

/* CustomerID が 1 のレコードを選択(数値なのでクォート不要) */
SELECT * FROM Customers
WHERE CustomerID = 1;

5. WHERE 句で使用できる演算子

= 演算子以外にも、検索をフィルタリングするためにさまざまな演算子(Operator)を使用できます。

5.1 実行例(比較演算)

CustomerID が 80 より大きいすべての顧客を選択する:

/* CustomerID が 80 を超えるレコードをすべて選択 */
SELECT * FROM Customers
WHERE CustomerID > 80;

5.2 主要な演算子一覧

WHERE 句では以下の演算子が利用可能です。

演算子説明
=等しい(Equal)
>より大きい(Greater than)
<より小さい(Less than)
>=以上(Greater than or equal)
<=以下(Less than or equal)
<>等しくない(Not equal)。※一部の SQL バージョンでは != と記述される場合もあります
BETWEEN特定の範囲内(Between a certain range)
LIKEパターンマッチング検索(Search for a pattern)
INカラムに対して複数の候補値を指定する(Specify multiple possible values)