PostgreSQLのWHERE句を完全解説|初心者でもわかる条件指定の基本と使い方
生徒
「PostgreSQLでデータを探すときに、WHERE句ってよく出てきますけど、何をしているんですか?」
先生
「WHERE句は、たくさん並んでいるデータの中から、条件に合うものだけを選び出すための指定です。名簿から『20歳未満の人だけ』を探すイメージですね。」
生徒
「条件って難しそうですが、パソコンが苦手でも理解できますか?」
先生
「大丈夫です。数字を比べたり、文字が一致しているかを見るだけなので、紙のチェック表を想像しながら説明します。」
1. SQLとは何か?
SQLは、PostgreSQLなどのデータベースを操作するための言葉です。データベースとは、たくさんの情報を表の形で整理して保存しておく箱のようなものです。SQLを使うと、その表の中身を見たり、追加したり、直したり、消したりできます。
その中でもSELECT文は「データを見る」ための命令で、WHERE句は「どのデータを見るか」を細かく指定する役割を持っています。
2. WHERE句の役割をイメージで理解しよう
WHERE句は、条件を指定するための場所です。紙の名簿にマーカーを引いて、「この条件に当てはまる人だけ見たい」と選ぶ作業に似ています。
例えば「年齢が20歳未満の人だけ」「名前が山田太郎の人だけ」といった条件を、SQLではWHERE句を使って書きます。条件がない場合、表の中のすべての行が表示されます。
3. サンプルテーブルを確認しよう
ここでは、usersという名前のテーブルを使います。SQLを実行する前の状態は、次のようになっているとします。
id | name | age | email
---+------------+-----+----------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
3 | 鈴木一郎 | 30 | ichiro@example.com
4 | 高橋次郎 | 18 | jiro@example.com
5 | 伊藤美咲 | 22 | misaki@example.com
4. 数字を条件にするWHERE句の基本
まずは、数字を使った条件指定です。年齢が20歳未満の人だけを表示したい場合、次のように書きます。
SELECT *
FROM users
WHERE age < 20;
実行すると、条件に合う行だけが表示されます。
id | name | age | email
---+------------+-----+----------------------
2 | 佐藤花子 | 19 | hanako@example.com
4 | 高橋次郎 | 18 | jiro@example.com
「<」は「より小さい」という意味です。数字の比較は、日常の算数と同じ感覚で考えられます。
5. 文字を条件にするWHERE句
次は、名前などの文字を条件にする方法です。文字の場合は、シングルクォーテーションで囲む必要があります。
SELECT *
FROM users
WHERE name = '山田太郎';
実行結果は次のようになります。
id | name | age | email
---+----------+-----+----------------------
1 | 山田太郎 | 25 | taro@example.com
「=」は「同じ」という意味です。表の中から、名前が完全に一致する行だけが選ばれます。
6. 複数の条件を組み合わせる方法
WHERE句では、条件を組み合わせることもできます。例えば「20歳以上で、30歳未満の人」を探したい場合です。
SELECT *
FROM users
WHERE age >= 20 AND age < 30;
実行結果は次の通りです。
id | name | age | email
---+------------+-----+----------------------
1 | 山田太郎 | 25 | taro@example.com
5 | 伊藤美咲 | 22 | misaki@example.com
ANDは「両方の条件を満たす」という意味です。チェック表で、2つの項目に両方チェックが入っている行だけを見るイメージです。
7. 条件のどれかに当てはまる場合(OR)
次はORです。ORは「どちらか一方でも当てはまればよい」という意味になります。
SELECT *
FROM users
WHERE name = '山田太郎' OR name = '佐藤花子';
id | name | age | email
---+----------+-----+----------------------
1 | 山田太郎 | 25 | taro@example.com
2 | 佐藤花子 | 19 | hanako@example.com
ORは、「どちらかに丸が付いていればOK」という感覚で覚えると分かりやすいです。
8. WHERE句を使うときの注意点
WHERE句はとても便利ですが、条件を書き間違えると、思った結果が出ません。特に文字の指定では、全角や半角、漢字の違いも完全に一致している必要があります。
また、UPDATE文やDELETE文と一緒に使う場合、WHERE句を書き忘れると、表の中のすべてのデータに影響が出てしまいます。条件指定は、必ず確認しながら使うことが大切です。