MySQL - WHERE句: データをプロのようにフィルタリング

こんにちは、データベースの愛好家さんたち!今日は、MySQLのツールキットの中でも最も重要なツールの一つ、WHERE句について深く掘り下げます。このレッスンの終わりには、熟練のプロのようにデータをフィルタリングできるようになるでしょう。お気に入りの飲み物を手に取り、リラックスして、一緒にこのエキサイティングな旅に出発しましょう!

MySQL - Where Clause

MySQL WHERE句とは?

巨大な図書館で、例えば「赤パンダ」に関する特定の本を探しているとしましょう。すべての本を一冊一冊見るわけにはいきませんよね?WHERE句がデータベースの世界で役立つ的就是ここです。まるで超知的な司書が即座にあなたが探しているものを見つけてくれるようなものです。

WHERE句は、データベースクエリの結果を特定の条件に基づいてフィルタリングすることを可能にします。まるでMySQLに「この特定の情報だけを表示してくれ」と言っているようなものです。

基本構文

以下は、WHERE句を含むSELECT文の基本構造です:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

最初は少し脅かされるかもしれませんが、たくさんの例を使って少しずつ解説します。

WHERE句を使ってデータを取得する

実際の例を見てみましょう。これらの例では、以下の構造を持つbooksテーブルを想定しています:

列名 データ型
id INT
title VARCHAR
author VARCHAR
genre VARCHAR
price DECIMAL
publish_date DATE

例1: 等しい比較

「J.K. Rowling」が書いたすべての本を見つけたいとします:

SELECT title, publish_date
FROM books
WHERE author = 'J.K. Rowling';

このクエリは、データベース内のすべてのJ.K. Rowlingが書いた本のタイトルと出版日を返します。=演算子は正確な等しさをチェックします。

例2: 大于比較

$20以上の価格を持つすべての本を見つけたい場合どうしますか?

SELECT title, price
FROM books
WHERE price > 20;

このクエリは、価格が20以上の本を探します。>演算子は大于比較を行います。

例3: LIKE演算子を使ったパターンマッチ

「Harry」が含まれるタイトルのすべての本を見つけます:

SELECT title, author
FROM books
WHERE title LIKE '%Harry%';

LIKE演算子はパターンマッチングを可能にします。%は任意の文字数をマッチします。

例4: IN演算子を使った複数値指定

特定のジャンルを持つ本を見つけたい場合どうしますか?

SELECT title, genre
FROM books
WHERE genre IN ('Fantasy', 'Science Fiction', 'Mystery');

IN演算子はWHERE句で複数の値を指定するのに使用されます。

例5: BETWEEN演算子を使った範囲指定

2010年から2020年間に出版された本を見つけます:

SELECT title, publish_date
FROM books
WHERE publish_date BETWEEN '2010-01-01' AND '2020-12-31';

BETWEEN演算子は指定された範囲内の値を選択します。

WHERE句を使ったクライアントプログラム

MySQLコマンドラインクライアントやMySQL WorkbenchなどのMySQLクライアントプログラムを使うと、これらのクエリを直接入力してデータベースと対話できます。以下の手順に従ってください:

  1. あなたのMySQLクライアントプログラムを開きます。
  2. データベースに接続します:
    mysql -u username -p
  3. データベースを選択します:
    USE your_database_name;
  4. これまでに議論したWHERE句のいずれかの例を実行します。

例えば:

SELECT title, author
FROM books
WHERE price < 15 AND genre = 'Romance';

このクエリは、価格が$15未満でジャンルが「Romance」の本のタイトルと作者を返します。

プロのヒント:条件の組み合わせ

AND、OR、NOTを使って複数の条件を組み合わせることができます:

SELECT title, author, price
FROM books
WHERE (genre = 'Mystery' OR genre = 'Thriller') AND price < 25;

このクエリは、ジャンルが「Mystery」または「Thriller」で価格が$25未満の本を探します。

WHERE句で使える一般的な演算子

以下はWHERE句で使える一般的な演算子の一覧です:

演算子 説明
= 等しい
> 大于
< 小于
>= 大于または等しい
<= 小于または等しい
<> 等しくない
BETWEEN 特定の範囲内
LIKE パターン検索
IN WHERE句に複数の値を指定
IS NULL NULL値を検索
NOT 条件を否定

実践は完璧を生みます!これらの演算子の異なる組み合わせで実験を続けてください。

結論

そして、皆さん!MySQLのWHERE句を使ったデータフィルタリングの世界に一大步を踏み出しました。WHERE句を忘れずに、データベースのツールキットの中で非常に重要なツールとして使い続けてください。正確でターゲット指向のデータ取得を可能にする鍵です。

練習を続け、好奇心を持ち続け、間もなくあなたは熟練のデータベース管理者のように複雑なクエリを簡単に書けるようになるでしょう。快適なクエリライフを!

Credits: Image by storyset