カテゴリ: データベース 更新日: 2025/02/24

SQLの演算子を完全ガイド!初心者でもわかるデータの比較と検索方法

SQLの演算子
SQLの演算子

新人と先輩の会話形式で理解しよう

新人

「SQLでデータを検索するときに、特定の条件に合うものだけ取得したいです!」

先輩

「そういうときは演算子を使うんだ。データを比較したり、範囲を指定したりするのに便利だよ。」

新人

「演算子って、どんなものがあるんですか?」

先輩

「例えば、イコール(=)で一致するデータを取得したり、不等号(>, <)で範囲を指定したりできるよ。まずは基本から学んでいこう!」

1. 演算子とは?

1. 演算子とは?
1. 演算子とは?

SQLの演算子は、データを比較したり、条件を指定して検索したりするために使われる記号やキーワードのことです。

主な演算子の種類

  • 比較演算子(=, !=, <, >, <=, >=): データの大小や一致を比較
  • 論理演算子(AND, OR, NOT): 条件を組み合わせる
  • 範囲演算子(BETWEEN, IN): 範囲やリストを指定
  • 文字列検索演算子(LIKE): 部分一致検索

今回は、比較演算子を詳しく解説します。

2. 比較演算子の使い方

2. 比較演算子の使い方
2. 比較演算子の使い方

比較演算子を使うと、特定の条件に一致するデータを検索できます。

1. イコール(=)

イコール(=)は、指定した値と一致するデータを取得するときに使います。


SELECT * FROM employee WHERE department = '営業';

このSQLを実行すると、営業部の社員のみが取得されます。

id name age department salary
1田中 太郎30営業5000000

2. ノットイコール(!= または <>)

ノットイコール(!= または <>)を使うと、指定した値と一致しないデータを取得できます。


SELECT * FROM employee WHERE department != '営業';

このSQLを実行すると、営業部以外の社員が取得されます。

id name age department salary
2佐藤 花子25マーケティング4200000
3鈴木 一郎35開発6000000

3. 大小比較(<, >, <=, >=)

数値や日付を比較するときに使います。

年齢が30歳以上の社員を取得


SELECT * FROM employee WHERE age >= 30;

このSQLを実行すると、30歳以上の社員が取得されます。

id name age department salary
1田中 太郎30営業5000000
3鈴木 一郎35開発6000000

給与が500万円未満の社員を取得


SELECT * FROM employee WHERE salary < 5000000;

このSQLを実行すると、給与が500万円未満の社員が取得されます。

id name age department salary
2佐藤 花子25マーケティング4200000

このように、比較演算子を使うことで、データの条件検索が可能になります。

4. 論理演算子(AND, OR, NOT)の使い方

4. 論理演算子(AND, OR, NOT)の使い方
4. 論理演算子(AND, OR, NOT)の使い方

SQLの論理演算子を使うと、複数の条件を組み合わせた検索が可能になります。

1. AND演算子

ANDを使うと、すべての条件を満たすデータだけを取得できます。


SELECT * FROM employee 
WHERE department = '開発' AND age >= 30;

このSQLを実行すると、開発部で30歳以上の社員のみが取得されます。

id name age department salary
3鈴木 一郎35開発6000000

2. OR演算子

ORを使うと、どちらかの条件を満たせばデータが取得されます。


SELECT * FROM employee 
WHERE department = '開発' OR salary >= 5000000;

このSQLを実行すると、開発部に所属する社員または給与が500万円以上の社員が取得されます。

3. NOT演算子

NOTを使うと、指定した条件に一致しないデータを取得できます。


SELECT * FROM employee 
WHERE NOT department = '営業';

このSQLを実行すると、営業部以外の社員が取得されます。

5. 範囲指定の演算子(BETWEEN, IN)の活用方法

5. 範囲指定の演算子(BETWEEN, IN)の活用方法
5. 範囲指定の演算子(BETWEEN, IN)の活用方法

SQLでは、BETWEENINを使うと、より効率的な検索が可能になります。

1. BETWEEN演算子

BETWEENを使うと、指定した範囲内のデータを取得できます。


SELECT * FROM employee 
WHERE age BETWEEN 25 AND 35;

このSQLを実行すると、25歳から35歳までの社員が取得されます。

2. IN演算子

INを使うと、複数の値の中から一致するデータを取得できます。


SELECT * FROM employee 
WHERE department IN ('営業', '開発');

このSQLを実行すると、営業部と開発部の社員が取得されます。

6. 文字列検索のLIKE演算子とは?

6. 文字列検索のLIKE演算子とは?
6. 文字列検索のLIKE演算子とは?

部分一致検索を行う場合は、LIKE演算子を使用します。

1. 名前が「田中」で始まる社員を検索


SELECT * FROM employee 
WHERE name LIKE '田中%';

このSQLを実行すると、「田中」で始まる名前の社員が取得されます。

2. 末尾が「郎」の社員を検索


SELECT * FROM employee 
WHERE name LIKE '%郎';

このSQLを実行すると、名前が「郎」で終わる社員が取得されます。

3. 部分一致検索

名前の中に「一」が含まれる社員を検索するには、%を前後につけます。


SELECT * FROM employee 
WHERE name LIKE '%一%';

このSQLを実行すると、名前のどこかに「一」が含まれる社員が取得されます。

このように、LIKE演算子を使うと、柔軟な文字列検索が可能になります。

7. NULLを扱う演算子(IS NULL, IS NOT NULL)

7. NULLを扱う演算子(IS NULL, IS NOT NULL)
7. NULLを扱う演算子(IS NULL, IS NOT NULL)

データベースでは、値が存在しない場合にNULLが格納されます。通常の比較演算子(=, != など)ではNULLを比較できないため、IS NULLIS NOT NULLを使用します。

1. NULLのデータを取得(IS NULL)

IS NULLを使うと、値がNULLのデータを取得できます。


SELECT * FROM employee WHERE salary IS NULL;

このSQLを実行すると、給与情報が登録されていない(NULL)社員のみが取得されます。

2. NULLではないデータを取得(IS NOT NULL)

IS NOT NULLを使うと、NULLではないデータを取得できます。


SELECT * FROM employee WHERE salary IS NOT NULL;

このSQLを実行すると、給与が登録されている社員が取得されます。

3. NULLを回避する方法(COALESCE関数)

NULLを0に置き換えたい場合は、COALESCE関数を使用します。


SELECT name, COALESCE(salary, 0) AS salary FROM employee;

これにより、NULLの給与データが0として扱われます。

8. 計算や文字列操作に使う演算子(+ , -, ||, CONCAT)

8. 計算や文字列操作に使う演算子(+ , -, ||, CONCAT)
8. 計算や文字列操作に使う演算子(+ , -, ||, CONCAT)

SQLでは、数値の計算や文字列の結合が可能です。

1. 数値の計算(+ , - , * , /)

数値の演算には、四則演算の演算子(+, -, *, /)を使用します。


SELECT name, salary, salary * 1.1 AS increased_salary FROM employee;

このSQLは、給与を10%増加させた計算結果を取得します。

2. 文字列の結合(|| または CONCAT関数)

文字列を結合する場合、データベースによって方法が異なります。

PostgreSQL・Oracle(||演算子)


SELECT name || '(' || department || ')' AS employee_info FROM employee;

このSQLは、名前と部署を結合して表示します。

MySQL・SQL Server(CONCAT関数)


SELECT CONCAT(name, '(', department, ')') AS employee_info FROM employee;

これにより、文字列が結合された状態で取得できます。

9. 実践!SQL演算子を組み合わせてデータを検索する

9. 実践!SQL演算子を組み合わせてデータを検索する
9. 実践!SQL演算子を組み合わせてデータを検索する

ここまで学んだ演算子を組み合わせることで、より柔軟な検索が可能になります。

1. 給与が500万円以上で、30歳以上の社員を検索


SELECT * FROM employee 
WHERE salary >= 5000000 AND age >= 30;

2. 開発または営業の社員で、給与が400万円以上の人を検索


SELECT * FROM employee 
WHERE department IN ('開発', '営業') AND salary >= 4000000;

3. 「田中」で始まる社員の給与を10%増やして表示


SELECT name, salary, salary * 1.1 AS new_salary 
FROM employee 
WHERE name LIKE '田中%';

このように、SQLの演算子を組み合わせることで、さまざまな条件でデータを検索・操作することができます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
Javaの引数とは?メソッドに値を渡す方法を初心者向けに徹底解説
Javaのメソッドを呼び出す書き方を完全解説!mainメソッドから実行する基本
Java のメソッドとは?基本の書き方を学ぼう
Javaの多次元配列(2次元配列)とは?初心者向けにわかりやすく解説
人気記事
No.1
Java&Spring記事人気No1
SQLのINSERT文を完全ガイド!初心者でもわかるデータの追加方法
No.2
Java&Spring記事人気No2
HTMLのセレクトボックス(プルダウン)の使い方を完全ガイド!selectとoptionの基本を覚えよう
No.3
Java&Spring記事人気No3
Spring Bootで学ぶ!セッションの有効期限(タイムアウト)設定の基礎
No.4
Java&Spring記事人気No4
Java のファイル構成を理解しよう(.javaと.class)|初心者向けにわかりやすく解説