サイトアイコン ITC Media

【必読】SQLのWHERE句の使い方|基礎から実例付きで解説

(最終更新月:2023年5月)

✔以下の疑問をお持ちの方へ向けた記事です

「SQLのWHERE句とは何で、どのように使うのだろうか?」
「SQLのWHERE句の使い方を学びたい」
「SQLのWHERE句の具体的な使用例を見て理解したい」

✔この記事を読むことで得られる知識

この記事では、SQLのWHERE句の基本的な使い方から、その応用法まで、具体的な例を交えて丁寧に説明します。

ぜひ最後までお読みください。

筆者プロフィール

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

SQLとWHERE句の基本

こちらでは、SQLとWHERE句の基本についてお伝えしていきます。

これらの理解はデータベース操作の基本を把握するために不可欠です。

SQLとは:概念と基本的な役割

SQL(Structured Query Language)は、データベースの操作ができる言語です。

以下のような、データベースに対するさまざまな操作を可能にします。

SQLは非常に強力で柔軟性があり、複雑なデータ操作も一つのクエリで表現できることが特徴です。

WHERE句とは:定義と使用場所

WHERE句は、SQLの一部で、データをフィルタリングするために使用されます。

主な使用場所は、以下のとおり。

WHERE句を使った構文

WHERE句は以下のような構文となります。

SELECT 列名 FROM テーブル名 WHERE 条件

WHERE句の基本的な使用方法

こちらでは、WHERE句の基本的な使用方法について詳しく説明します。

WHERE句はさまざまなデータ型に対応しているので、ひとつずつ確認が必要です。

さまざまな演算子とともに使うWHERE句

WHERE句では比較演算子(=, <, >, <=, >=, <>)を使用して条件を指定します。

例はこちら。

SELECT * FROM Employees WHERE Salary > 50000

このクエリでは、給料が50000より大きい従業員のレコードをすべて取得します。

数値データでのWHERE句の使い方

数値データに対してWHERE句を使用する場合、直感的に操作することができます。

上記の例のように、特定の数値を基準にレコードをフィルタリングできます。

もしくは以下のようにBETWEEN演算子を使ってフィルタリングも可能です。

SELECT * FROM Employees WHERE Salary BETWEEN 50000 AND 999999;

BETWEEN演算子について詳しくはこちらをどうぞ。

文字列データでのWHERE句の使い方

文字列データに対するWHERE句の使用は、数値データとは少し異なります。

以下のように、字列を引用符で囲む必要があります。

SELECT * FROM Employees WHERE FirstName = 'John'

このクエリは、FirstNameが’John’であるすべての従業員を選択します。

WHERE句の応用的な使用方法

こちらでは、WHERE句の応用的な使用方法について詳しく説明します。

複数の条件を組み合わせる方法や、特殊な演算子の使用方法を学ぶことで、より複雑なデータ操作が可能になります。

複数の条件を組み合わせるANDとOR

複数の条件を組み合わせるには、ANDやORを使用します。

ANDは両方の条件が真である場合にレコードを選択し、ORは少なくとも一方の条件が真である場合にレコードを選択します。

SELECT * FROM Employees WHERE Salary > 50000 AND FirstName = 'John'

こちらの嶺では、給料が50000以上で、かつ、FirstNameが’John’である従業員を選択します。

NULL値を扱うIS NULLとIS NOT NULL

データベース内のフィールドには、時折NULL値が存在します。

これらのNULL値を特定するには、IS NULLを使用します。

逆に、NULLでないレコードを特定するにはIS NOT NULLを使用します。

SELECT * FROM Employees WHERE MiddleName IS NULL

MiddleNameがNULLの従業員をすべて選択します。

IN, BETWEEN, LIKEなどの特殊な演算子

特定の範囲内や特定の値のリストに含まれるレコードを選択するには、INやBETWEENを使用します。

また、特定のパターンに一致するレコードを選択するには、LIKEを使用します。

これらの演算子を組み合わせることで、さまざまな複雑なクエリを作成することができます。

BETWEENについてはこちら。

LIKEについてはこちらをご覧ください。

INについてはこちらです。

WHERE句の使用例

こちらでは、WHERE句の具体的な使用例をいくつか提示します。

これらの例を通じて、WHERE句を使ったデータフィルタリング、更新、削除の具体的な方法を理解することができます。

WHERE句を使ったデータフィルタリングの例

特定の条件を満たす従業員のデータだけを取得したい場合、以下のようにWHERE句を使います。

SELECT * FROM Employees WHERE Salary > 50000 AND Department = 'Sales'

給与が50000以上で、かつ、部署が’Sales’である従業員のレコードを取得します。

WHERE句を使ったデータ更新・削除の例

データの更新や削除でもWHERE句は重要です。

こちらは、特定の従業員の給与を更新する場合の例になります。

UPDATE Employees SET Salary = 60000 WHERE EmployeeID = 123

以下は、特定の部署の従業員を削除する場合です。

DELETE FROM Employees WHERE Department = 'Sales'

WHERE句の注意点とトラブルシューティング

こちらでは、WHERE句の注意点とトラブルシューティングについて説明します。

SQLクエリのパフォーマンスに影響を与える可能性がありますので、これらの点に注意することが重要です。

WHERE句とパフォーマンス

WHERE句は効率的なデータベース操作において重要な役割を果たしますが、同時にパフォーマンスに影響を与える可能性もあります。

大量のデータを扱う場合、特にインデックスが適切に使用されていないと、WHERE句は大幅なパフォーマンス低下を引き起こす可能性があります。

したがって、パフォーマンスを考慮しながら適切なインデックスを設計し、適切なWHERE句を構築することが重要です。

WHERE句の一般的なエラーとその解決策

WHERE句の使用中によく見られるエラーの一つは、データ型の不一致です。

例えば、文字列の比較を行う際に数値を使用するとエラーが発生します。

このようなエラーを防ぐためには、使用するデータの型を常に確認し、適切なデータ型の使用が不可欠。

また、NULL値の扱いに注意が必要で、NULL値は他の値と等しくないという特性を持っています。

したがって、NULL値を扱う際にはIS NULLやIS NOT NULLを使用しましょう。

まとめ

当記事でお伝えしたこと。

SQLの理解を深めるためには、実際に手を動かして実践的な経験を積むことが最も重要です。

実際のデータベースを操作して、本記事で学んだ知識を活用してみてください。

さらに、JOIN、GROUP BY、HAVINGなどの他のSQLの機能も学ぶことで、できることの幅も広がります。

モバイルバージョンを終了