• ブログ
  • >
  • [SQLの基本]比較演算子とパターンマッチング入門: =、!=、LIKE、NOT LIKEの使い方と違い

SQLの比較演算子とパターンマッチング入門:=、!=、LIKE、NOT LIKEの使い方と違い

投稿日:

はじめに

SQLでデータを操作する際、特定の条件に一致するデータを抽出することがよくあります。今回は、SQLの基本的な比較演算子である「=」「!=」と、パターンマッチングに使用される「LIKE」「NOT LIKE」について詳しく解説します。これらの演算子を使いこなすことで、データの抽出やフィルタリングを効率的に行うことができます。

比較演算子

= 演算子

「=」演算子は、指定した値と一致する行を選択するために使用されます。これは最も基本的な比較演算子であり、等価比較を行います。

SELECT 
  column1, 
  column2
FROM table_name
WHERE column_name = value;

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

SELECT 
  first_name, 
  last_name
FROM employees
WHERE first_name = 'John';

!= 演算子

「!=」演算子は、指定した値と一致しない行を選択するために使用されます。等価比較の否定を行います。

SELECT 
  column1, 
  column2
FROM table_name
WHERE column_name != value;

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

SELECT 
  first_name, 
  last_name
FROM employees
WHERE first_name != 'John';

パターンマッチング演算子

LIKE 演算子

「LIKE」演算子は、指定したパターンに一致する行を選択するために使用されます。ワイルドカード(%や_)を使用して、部分一致検索を行うことができます。

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

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

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

NOT LIKE 演算子

「NOT LIKE」演算子は、指定したパターンに一致しない行を選択するために使用されます。部分一致検索の否定を行います。

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

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

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

使用例の比較

= と LIKE の比較

「=」演算子は完全一致を必要としますが、「LIKE」演算子は部分一致を可能にします。

完全一致

SELECT 
  first_name, 
  last_name
FROM employees
WHERE first_name = 'John';

部分一致

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

!= と NOT LIKE の比較

「!=」演算子は完全不一致を必要としますが、「NOT LIKE」演算子は部分不一致を可能にします。

完全不一致

SELECT 
  first_name, 
  last_name
FROM employees
WHERE first_name != 'John';

部分不一致

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

ワイルドカードの使用

% ワイルドカード

「%」は0個以上の任意の文字列に一致します。

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

このクエリは、first_nameが「hn」で終わる全ての行を返します。

_ ワイルドカード

「_」は任意の1文字に一致します。

完全不一致

SELECT
  first_name, 
  last_name
FROM employees
WHERE first_name LIKE 'J_n';

このクエリは、first_nameが「J」で始まり、3文字目が「n」である全ての行を返します。

まとめ

今回は、SQLの基本的な比較演算子である「=」「!=」と、パターンマッチングに使用される「LIKE」「NOT LIKE」について学びました。これらの演算子を使いこなすことで、データの抽出やフィルタリングが効率的に行えるようになります。次回の記事では、さらに高度なSQLクエリやデータベース操作について詳しく解説していきます。ぜひご期待ください!