支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


はじめに

本稿では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演算子は他の演算子とも組み合わせることができるので、色々な条件で試してみてはいかがでしょうか。

本稿が皆様のお役に立てれば幸いです。最後までお読みいただきありがとうございます。