はじめに
本稿ではSQLのデータを抽出する際に、条件をより細かく絞るためのWHERE句の演算子について紹介していきます。WHERE句を上手く指定することで必要なデータだけを抽出することができるようになります。
WHERE句でよく使われている演算子一覧
本稿では以下のEmployeeテーブルからデータを抽出するためのサンプルコードを紹介していきます。
【Employeeテーブル】 |
id |
name |
age |
department |
001 |
山田太郎 |
25 |
開発 |
002 |
佐藤次郎 |
46 |
インフラ |
003 |
山本三郎 |
30 |
開発 |
004 |
横山四郎 |
25 |
IT事務 |
比較演算子
比較演算子とは以下のようなものを指します。
演算子 |
意味 |
= |
等しい |
!= |
等しくない |
> |
より大きい |
>= |
以上 |
< |
より小さい |
<= |
以下 |
これらの演算子を使用して、Employeeテーブルからデータを抽出していきます。
SELECT *
FROM Employee
WHERE department = '開発';
【抽出結果】 |
id |
name |
age |
department |
001 |
山田太郎 |
25 |
開発 |
003 |
山本三郎 |
30 |
開発 |
SELECT *
FROM Employee
WHERE age > 30;
【抽出結果】 |
id |
name |
age |
department |
002 |
佐藤次郎 |
46 |
インフラ |
SELECT *
FROM Employee
WHERE age <= 30;
【抽出結果】 |
id |
name |
age |
department |
001 |
山田太郎 |
25 |
開発 |
003 |
山本三郎 |
30 |
開発 |
004 |
横山四郎 |
25 |
IT事務 |
AND演算子
AND演算子を使用することで、複数の条件を満たすデータを抽出することができます。
SELECT *
FROM Employee
WHERE age = 25
AND department = '開発';
【抽出結果】 |
id |
name |
age |
department |
001 |
山田太郎 |
25 |
開発 |
OR演算子
OR演算子を使用することで、いずれかの条件を満たすデータを抽出することができます。
SELECT *
FROM Employee
WHERE age = 25
OR department = '開発';
【抽出結果】 |
id |
name |
age |
department |
001 |
山田太郎 |
25 |
開発 |
003 |
山本三郎 |
30 |
開発 |
004 |
横山四郎 |
25 |
IT事務 |
LIKE演算子
LIKE演算子を使用することで、文字列の一致パターンでデータを抽出することができます。%は任意の文字列を表しています。
部分一致
SELECT *
FROM Employee
WHERE name LIKE '%山%';
【抽出結果】 |
id |
name |
age |
department |
001 |
山田太郎 |
25 |
開発 |
003 |
山本三郎 |
30 |
開発 |
004 |
横山四郎 |
25 |
IT事務 |
前方一致
SELECT *
FROM Employee
WHERE name LIKE '山%';
【抽出結果】 |
id |
name |
age |
department |
001 |
山田太郎 |
25 |
開発 |
003 |
山本三郎 |
30 |
開発 |
後方一致
SELECT *
FROM Employee
WHERE name LIKE '%郎';
【抽出結果】 |
id |
name |
age |
department |
001 |
山田太郎 |
25 |
開発 |
002 |
佐藤次郎 |
46 |
インフラ |
003 |
山本三郎 |
30 |
開発 |
004 |
横山四郎 |
25 |
IT事務 |
完全一致
SELECT *
FROM Employee
WHERE name LIKE '山田太郎';
【抽出結果】 |
id |
name |
age |
department |
001 |
山田太郎 |
25 |
開発 |
BETWEEN演算子
BETWEEN演算子を使用することで、範囲内に含まれているデータを抽出することができます。
SELECT *
FROM Employee
WHERE age BETWEEN 28 AND 46;
【抽出結果】 |
id |
name |
age |
department |
002 |
佐藤次郎 |
46 |
インフラ |
003 |
山本三郎 |
30 |
開発 |
IN演算子
IN演算子を使用することで、指定した値のいずれかと一致するデータを抽出することができます。
SELECT *
FROM Employee
WHERE id IN (001, 003, 005);
【抽出結果】 |
id |
name |
age |
department |
001 |
山田太郎 |
25 |
開発 |
003 |
山本三郎 |
30 |
開発 |
NOT演算子
NOT演算子を使用することで、指定した条件と一致しないデータを抽出することができます。
SELECT *
FROM Employee
WHERE NOT department = '開発';
【抽出結果】 |
id |
name |
age |
department |
002 |
佐藤次郎 |
46 |
インフラ |
004 |
横山四郎 |
25 |
IT事務 |
まとめ
本稿ではWHERE句の演算子について紹介してきました。本稿では分かりやすくするためにデータ数の少ないテーブルで紹介してきました。実際に実務などでテーブルからデータを抽出する場合は、数百から数千のデータを取り扱うこともあるので、しっかりと条件を指定する必要があります。最後に紹介したNOT演算子は他の演算子とも組み合わせることができるので、色々な条件で試してみてはいかがでしょうか。
本稿が皆様のお役に立てれば幸いです。最後までお読みいただきありがとうございます。