MySQLのWHERE句を完全解説!初心者でもわかる条件検索の基本
生徒
「SELECT文はなんとなく分かってきたんですが、WHEREって何をするものなんですか?」
先生
「WHEREは、条件を指定してデータを絞り込むためのものです。名簿の中から条件に合う人だけを探すための仕分けルールだと思ってください。」
生徒
「条件って聞くと難しそうですが、初心者でも使えますか?」
先生
「大丈夫です。WHERE句は、日常生活の『〜以上』『〜だけ』という考え方と同じなので、順番に見ていけば自然と理解できます。」
1. SQLとは何か?
SQLは、データベースと呼ばれる大量のデータを整理して保存する箱に対して、操作の指示を出すための言語です。MySQLでは、このSQLを使ってデータを表示したり、追加したり、変更したり、削除したりします。
中でもSELECT文はデータを見るための基本操作で、WHERE句はその中で「条件検索」を行うために使われます。
2. WHERE句とは何をするものか
WHERE句は、SELECT文と一緒に使い、条件に合うデータだけを取り出すための仕組みです。すべてのデータを見るのではなく、「必要なものだけを見る」ために使います。
紙の名簿で「二十歳未満の人だけ探す」「この名前の人だけ見る」といった作業をするとき、人は自然に条件を付けています。WHERE句は、その作業をMySQLにお願いするための命令です。
3. サンプルとなるテーブルの内容
ここでは、会員情報を管理しているusersテーブルを例に、WHERE句の使い方を説明します。まずは、SQLを実行する前のテーブルの状態を確認します。
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋次郎 | 22 | jiro@example.com
4. WHERE句を使わないSELECT文
まずは、WHERE句を使わない場合を見てみます。このSQLでは、usersテーブルに入っているすべてのデータを表示します。
SELECT *
FROM users;
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋次郎 | 22 | jiro@example.com
WHERE句がない場合は、条件を付けずに全件表示されます。
5. WHERE句で数値条件を指定する
WHERE句の基本は、「列名 比較記号 値」という形です。例えば、年齢が二十歳未満の人を探したい場合は、age列を条件に使います。
SELECT *
FROM users
WHERE age < 20;
id | name | age | email
---+----------+-----+-------------------
2 | 佐藤花子 | 19 | hanako@example.com
このように、WHERE句を使うことで、条件に合うデータだけが表示されます。「小なり記号」は「より小さい」という意味です。
6. 文字を条件にしたWHERE句
WHERE句は、数字だけでなく文字にも使えます。例えば、名前が特定の人だけを探したい場合です。
SELECT *
FROM users
WHERE name = '山田太郎';
id | name | age | email
---+----------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
文字を条件にする場合は、シングルクォーテーションで囲みます。これは、「ここからここまでが文字です」とMySQLに伝えるための決まりです。
7. WHERE句はSELECT文とセットで考える
WHERE句は単体では使えず、必ずSELECT文と一緒に使います。考え方としては、「どのテーブルから」「どんな条件で」「何を表示するか」という順番です。
文章として読むと、「usersテーブルから、条件に合うデータを取り出す」という意味になります。この読み方に慣れると、SQLが急に分かりやすくなります。
8. WHERE句を使うときの注意点
WHERE句を使うときは、条件を書き間違えると、意図しないデータが表示されることがあります。特に文字と数字の違いには注意が必要です。
また、条件を書かずにUPDATEやDELETEと組み合わせると、すべてのデータに影響が出てしまいます。そのため、WHERE句は「データを守るための条件」としても重要な役割を持っています。
9. WHERE句を使った検索後のテーブルイメージ
WHERE句は、テーブルの中身を変更するものではなく、表示を絞り込むための仕組みです。元のテーブルは、SQL実行後も次のように変わりません。
id | name | age | email
---+------------+-----+-------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋次郎 | 22 | jiro@example.com
WHERE句は、「探し方」を指定するだけの安全なSQLであり、条件検索の基本となる重要な要素です。