SQLのWHERE句を使ったデータフィルタリングテクニック

text SQL

データベースに保存された大量のデータから必要な情報を抽出するには、「WHERE句」を使用することが基本です。SQL(Structured Query Language)のWHERE句は、条件を指定してデータをフィルタリングするための強力な手段であり、初心者がデータ分析やデータベース操作を学ぶ上で欠かせない要素です。

この記事では、SQLのWHERE句を使ったデータフィルタリングの基礎から応用テクニックまでを、初心者にもわかりやすく解説します。これをマスターすれば、データベースから必要な情報を効率的に取得できるようになるでしょう。


WHERE句とは?

WHERE句は、SQLのSELECT文やUPDATE文、DELETE文で使用され、指定した条件に一致するデータのみを取得、更新、または削除するために使われます。

WHERE句の基本構文

SELECT 列名
FROM テーブル名
WHERE 条件;
  • SELECT:取得したい列を指定します。
  • FROM:対象となるテーブルを指定します。
  • WHERE:データを絞り込む条件を指定します。

簡単な例

例えば、以下の「employees」というテーブルがあるとします。

idnamedepartmentsalary
1AliceHR5000
2BobIT6000
3CharlieIT5500
4DianaMarketing4500

この中から「IT部門の社員」を取得したい場合、以下のようなSQL文を使用します。

SELECT * 
FROM employees
WHERE department = 'IT';

結果:

idnamedepartmentsalary
2BobIT6000
3CharlieIT5500

WHERE句の基本的な比較演算子

WHERE句では、条件を指定する際に以下のような比較演算子を使用します。

演算子説明
=等しいsalary = 5000
<>等しくないdepartment <> 'HR'
<より小さいsalary < 5000
>より大きいsalary > 5000
<=以下salary <= 5000
>=以上salary >= 5000

例:5000以上の給与を得ている社員を取得する

SELECT * 
FROM employees
WHERE salary >= 5000;

結果:

idnamedepartmentsalary
1AliceHR5000
2BobIT6000
3CharlieIT5500

複数条件の指定:ANDとOR

複数の条件を指定する場合、ANDORを使って条件を組み合わせます。

AND:すべての条件を満たすデータを取得

SELECT * 
FROM employees
WHERE department = 'IT' AND salary > 5500;

結果:

idnamedepartmentsalary
2BobIT6000

OR:いずれかの条件を満たすデータを取得

SELECT * 
FROM employees
WHERE department = 'IT' OR salary > 5500;

結果:

idnamedepartmentsalary
1AliceHR5000
2BobIT6000
3CharlieIT5500

ANDとORを組み合わせる

複雑な条件を指定する際は、カッコ()を使って条件をグループ化します。

SELECT * 
FROM employees
WHERE (department = 'IT' OR department = 'HR') AND salary > 5000;

結果:

idnamedepartmentsalary
2BobIT6000
3CharlieIT5500

特定の値を指定:IN演算子

INを使うと、複数の値のいずれかに一致するデータを簡単に取得できます。

SELECT * 
FROM employees
WHERE department IN ('IT', 'HR');

結果:

idnamedepartmentsalary
1AliceHR5000
2BobIT6000
3CharlieIT5500

部分一致を検索:LIKE演算子

LIKEを使用すると、文字列の部分一致を検索できます。ワイルドカードを使うことで柔軟な検索が可能です。

ワイルドカード説明
%任意の文字列'A%'(Aで始まる)
_任意の1文字'A_'(Aで始まり2文字目指定)

例:名前がAで始まる社員を取得

SELECT * 
FROM employees
WHERE name LIKE 'A%';

結果:

idnamedepartmentsalary
1AliceHR5000

範囲を指定:BETWEEN演算子

BETWEENを使うと、数値や日付の範囲を指定してデータを絞り込むことができます。

例:給与が5000から6000の範囲にある社員を取得

SELECT * 
FROM employees
WHERE salary BETWEEN 5000 AND 6000;

結果:

idnamedepartmentsalary
1AliceHR5000
2BobIT6000
3CharlieIT5500

NULL値の確認:IS NULLとIS NOT NULL

IS NULLIS NOT NULLを使うと、データが空(NULL)であるかどうかを確認できます。

例:給与が未設定の社員を取得

SELECT * 
FROM employees
WHERE salary IS NULL;

WHERE句の応用例

1. データの重複を排除する

DISTINCTと組み合わせて、特定の列で重複を排除します。

SELECT DISTINCT department
FROM employees;

2. 条件に基づいて並び替える

ORDER BYと組み合わせて、フィルタリング後のデータをソートします。

SELECT * 
FROM employees
WHERE salary > 5000
ORDER BY salary DESC;

まとめ

SQLのWHERE句は、データを効率的にフィルタリングするための基本でありながら非常に強力なツールです。比較演算子や論理演算子、部分一致検索、範囲指定など、多彩な機能を使いこなすことで、必要なデータを簡単に抽出できます。

WHERE句をマスターすることで、データ分析やアプリケーション開発でのデータ操作がよりスムーズになるでしょう。初心者の方は、まず基本的な比較演算子やANDORの使い方を学び、徐々に応用例に挑戦してみてください!

タイトルとURLをコピーしました