• ブログ
  • >
  • [SQLの基本]集合関数入門: データを集計する基本クエリ

SQLの条件指定入門:WHERE IN, WHERE NOT IN, BETWEEN, LIKE, NOT LIKEの使い方

投稿日:

はじめに

SQLでデータを操作する際、特定の条件に一致するデータを抽出することがよくあります。今回は、条件指定の方法として「WHERE IN」「WHERE NOT IN」「BETWEEN」「LIKE」「NOT LIKE」について詳しく解説します。これらの条件指定を使用することで、複雑なクエリを簡潔に記述することができます。

WHERE IN

WHERE IN句は、指定したリスト内のいずれかの値に一致する行を選択するために使用されます。複数の値に対して一度に条件を適用したい場合に便利です。

SELECT 
  column1, 
  column2 
FROM table_name 
WHERE column_name IN (value1, value2, ...);

例 employeesテーブルから特定の部門に属する従業員を取得するクエリは次の通りです。

SELECT 
  first_name, 
  last_name, 
  department_id 
FROM employees
WHERE department_id IN (1, 2, 3);

WHERE NOT IN

WHERE NOT IN句は、指定したリスト内のいずれの値にも一致しない行を選択するために使用されます。

SELECT 
  column1, 
  column2
FROM table_name 
WHERE column_name NOT IN (value1, value2, ...);

例 employeesテーブルから特定の部門に属さない従業員を取得するクエリは次の通りです。

SELECT 
  first_name, 
  last_name, 
  department_id 
FROM employees
WHERE department_id NOT IN (1, 2, 3);

BETWEEN

BETWEEN句は、指定した範囲内の値に一致する行を選択するために使用されます。数値、日付、文字列の範囲指定が可能です。

SELECT 
  column1, 
  column2 
FROM table_name 
WHERE column_name 
BETWEEN value1 AND value2;

例 employeesテーブルから給与が50000から80000の範囲内にある従業員を取得するクエリは次の通りです。

SELECT 
  first_name, 
  last_name, 
  salary 
FROM employees
WHERE salary 
BETWEEN 50000 AND 80000;

日付の範囲指定

日付データの範囲を指定することもできます。

SELECT 
  order_id, 
  order_date, 
  customer_id 
FROM orders
WHERE order_date 
BETWEEN '2023-01-01' AND '2023-12-31';

このクエリは、2023年の間に注文された全ての注文ID、注文日、顧客IDを返します。

LIKE

LIKE句は、部分一致検索に使用されます。ワイルドカード(%や_)を使用して、特定のパターンに一致する行を選択します。

SELECT 
  column1, 
  column2 
FROM table_name 
WHERE column_name LIKE 'pattern';

例 employeesテーブルから、名前が「A」で始まる従業員を取得するクエリは次の通りです。

SELECT 
  first_name, 
  last_name 
FROM employees
WHERE first_name LIKE 'A%';

NOT LIKE

NOT LIKE句は、特定のパターンに一致しない行を選択するために使用されます。

SELECT 
  column1, 
  column2 
FROM table_name 
WHERE column_name NOT LIKE 'pattern';

例 employeesテーブルから、名前が「A」で始まらない従業員を取得するクエリは次の通りです。

SELECT
  first_name, 
  last_name 
FROM employees
WHERE first_name NOT LIKE 'A%';

IS NULL / IS NOT NULL

IS NULLおよびIS NOT NULLは、NULL値のチェックに使用されます。

SELECT 
  first_name, 
  last_name 
FROM employees
WHERE manager_id IS NULL;

このクエリは、manager_idがNULLである従業員の名前を返します。

SELECT
  first_name, 
  last_name 
FROM employees
WHERE manager_id IS NOT NULL;

このクエリは、manager_idがNULLでない従業員の名前を返します。

まとめ

今回は、SQLの条件指定の基本として「WHERE IN」「WHERE NOT IN」「BETWEEN」「LIKE」「NOT LIKE」について学びました。これらの条件指定を使用することで、データの抽出がより効率的に行えるようになります。次回の記事では、さらに高度な条件指定やクエリの作成方法について詳しく解説していきます。ぜひご期待ください!