• ブログ
  • >
  • [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';

!= 演算子(<> 演算子)

「!=」演算子は、指定した値と一致しない行を選択するために使用されます。等価比較の否定を行います。「<>」と書いても同じ意味になります。「<>」はSQL標準の書き方で、「!=」はMySQL等で広く使われる書き方です。

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クエリやデータベース操作について詳しく解説していきます。ぜひご期待ください!

SheetFlow - 学んだSQLを業務で活かそう

SQLマーケティングアカデミーで身につけたSQLスキル、実務でも使ってみませんか?

SheetFlowは、ExcelファイルをアップロードしてSQLで直接操作できるクラウドサービスです。学んだSELECT文やJOIN、集計関数をそのまま業務データに適用し、手作業の集計を自動化できます。

SheetFlowを無料で試す