前回の記事では、データベースのテーブルからデータを取得する際に使用するSELECTステートメントを紹介しました。

SELECTステートメントでは、SELECT句で取得する列を選択し、FROM句でデータを取得するテーブル(場所)を指定しました。
SELECT句とFROM句を使ったSQLでは、テーブルからすべての行(レコード)が取得されます。
しかし検索などの処理では、テーブルからデータを取得する際に特定のレコード(行)に絞りたい場合があります。
そこで今回は、取得するデータを絞り込む際に使用するWHERE句について紹介します。
目次 [非表示]
使用するサンプルテーブル
本記事では、WHERE句の説明に「従業員」という名前のテーブルを使用します。
「従業員」テーブルの定義は以下のようになります。
テーブル定義
列名 | データ型 | NULLを許容 |
---|---|---|
ID | int | No |
氏名 | nvarchar(50) | Yes |
性別 | nvarchar(10) | Yes |
部署 | nvarchar(20) | Yes |
テーブルを作成するCREATE文(SQL)
テーブルにデータを挿入するINSERT文(SQL)
取得する行(レコード)を指定するWHERE
SELECTステートメントでテーブルからデータを取得するSQLは以下のようになります。
ここに取得する行を絞り込む条件を指定するためにWHEREを記述します。
WHERE句は、FROM句でテーブルを指定した後に記述します。
WHERE句には、取得する行を特定するための条件式を指定します。
例えば、「性別」が「男性」の行だけに絞り込みたい場合は、以下のSQLになります。
上記のSQLを実行すると、以下のデータが取得されます。
性別が男性の「佐藤 一郎」「鈴木 次郎」「山田 三郎」の3行のレコードが取得できているのが確認できます。
複数の条件を指定して取得する行を絞り込む
WHERE句を使用することで、SELECTステートメントで取得する行を限定することができるようになりました。
ここまでの例では、WHERE句で行を特定するための条件は1つのみ指定していましたが、複数の条件を指定することもできます。
WHERE句で複数の条件式を記述する場合は、WHERE句に記述した条件式の後にANDを記述します。
ANDの後は、WHERE句と同様に条件式を記述します。
上記のSQLを実行すると、以下のデータが取得されます。
性別が男性である条件に加えて、部署が営業部である行の「佐藤 一郎」と「山田 三郎」が抽出対象になっていることが確認できます。