カテゴリ: PostgreSQL 更新日: 2026/03/01

PostgreSQLのWHERE句を完全解説|初心者でもわかる条件指定の基本と使い方

PostgreSQLのWHERE句の書き方(条件指定の基本)
PostgreSQLのWHERE句の書き方(条件指定の基本)

先生と生徒の会話形式で理解しよう

生徒

「PostgreSQLでデータを探すときに、WHERE句ってよく出てきますけど、何をしているんですか?」

先生

「WHERE句は、たくさん並んでいるデータの中から、条件に合うものだけを選び出すための指定です。名簿から『20歳未満の人だけ』を探すイメージですね。」

生徒

「条件って難しそうですが、パソコンが苦手でも理解できますか?」

先生

「大丈夫です。数字を比べたり、文字が一致しているかを見るだけなので、紙のチェック表を想像しながら説明します。」

1. SQLとは何か?

1. SQLとは何か?
1. SQLとは何か?

SQLは、PostgreSQLなどのデータベースを操作するための言葉です。データベースとは、たくさんの情報を表の形で整理して保存しておく箱のようなものです。SQLを使うと、その表の中身を見たり、追加したり、直したり、消したりできます。

その中でもSELECT文は「データを見る」ための命令で、WHERE句は「どのデータを見るか」を細かく指定する役割を持っています。

2. WHERE句の役割をイメージで理解しよう

2. WHERE句の役割をイメージで理解しよう
2. WHERE句の役割をイメージで理解しよう

WHERE句は、条件を指定するための場所です。紙の名簿にマーカーを引いて、「この条件に当てはまる人だけ見たい」と選ぶ作業に似ています。

例えば「年齢が20歳未満の人だけ」「名前が山田太郎の人だけ」といった条件を、SQLではWHERE句を使って書きます。条件がない場合、表の中のすべての行が表示されます。

3. サンプルテーブルを確認しよう

3. サンプルテーブルを確認しよう
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句の基本

4. 数字を条件にするWHERE句の基本
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句

5. 文字を条件にするWHERE句
5. 文字を条件にするWHERE句

次は、名前などの文字を条件にする方法です。文字の場合は、シングルクォーテーションで囲む必要があります。


SELECT *
FROM users
WHERE name = '山田太郎';

実行結果は次のようになります。


id | name     | age | email
---+----------+-----+----------------------
1  | 山田太郎 | 25  | taro@example.com

「=」は「同じ」という意味です。表の中から、名前が完全に一致する行だけが選ばれます。

6. 複数の条件を組み合わせる方法

6. 複数の条件を組み合わせる方法
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)

7. 条件のどれかに当てはまる場合(OR)
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句を使うときの注意点

8. WHERE句を使うときの注意点
8. WHERE句を使うときの注意点

WHERE句はとても便利ですが、条件を書き間違えると、思った結果が出ません。特に文字の指定では、全角や半角、漢字の違いも完全に一致している必要があります。

また、UPDATE文やDELETE文と一緒に使う場合、WHERE句を書き忘れると、表の中のすべてのデータに影響が出てしまいます。条件指定は、必ず確認しながら使うことが大切です。

カテゴリの一覧へ
新着記事
New1
PostgreSQL
PostgreSQLのLIMIT・OFFSETとパフォーマンス問題を完全解説|初心者でもわかる安全な使い方
New2
MySQL
MySQLのUPDATE文でデータを更新する基本を徹底解説|SQL初心者でもわかるデータベース更新入門
New3
PostgreSQL
PostgreSQLのOFFSET完全入門|並び替えと組み合わせてデータをスキップする方法を初心者向けに解説
New4
MySQL
MySQLで複数行INSERTを行う方法と注意点を徹底解説|SQL基礎から学ぶデータベース入門
人気記事
No.1
Java&Spring記事人気No1
PostgreSQL
PostgreSQLのDISTINCT完全ガイド|SQLで重複データを除外する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
PostgreSQL
PostgreSQLの主キー・外部キーを完全解説!初心者でもわかる設定方法と考え方
No.3
Java&Spring記事人気No3
PostgreSQL
PostgreSQLのLEFT JOIN完全入門!不足データを補いながらテーブル結合する仕組みをやさしく解説
No.4
Java&Spring記事人気No4
PostgreSQL
PostgreSQLとは?初心者向けに特徴をわかりやすく解説
No.5
Java&Spring記事人気No5
PostgreSQL
PostgreSQLのUPDATE文の使い方(部分更新・条件更新)
No.6
Java&Spring記事人気No6
PostgreSQL
PostgreSQLスキーマ設計のベストプラクティス完全ガイド|初心者でもわかるデータベース整理術
No.7
Java&Spring記事人気No7
PostgreSQL
PostgreSQLの権限管理を完全解説|スキーマ単位で理解するデータベースセキュリティの基礎
No.8
Java&Spring記事人気No8
PostgreSQL
PostgreSQLスキーマ作成・削除完全ガイド!初心者でもわかるデータベース設計の基礎