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

PostgreSQLのIS NULL・IS NOT NULL完全入門|WHERE句で空のデータを正しく検索する方法

PostgreSQLのIS NULL/IS NOT NULL の使い方
PostgreSQLのIS NULL/IS NOT NULL の使い方

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

生徒

「PostgreSQLでデータを検索していたら、何も入っていないデータがあって、どう探せばいいのか分からなくなりました」

先生

「それはNULLと呼ばれる特別な状態ですね。IS NULLやIS NOT NULLを使うと、空のデータを正しく探せます」

生徒

「パソコンが苦手でも理解できますか?」

先生

「大丈夫です。紙の名簿で空欄を探すイメージで説明します」

1. SQLとは何か?

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

SQLは、データベースに保存されている情報を操作するための言葉です。データベースは、たくさんの情報を表の形で整理して保管する仕組みです。SQLを使うことで、その表の中から必要な情報だけを探し出せます。

例えば、会員名簿の中からメールアドレスが登録されていない人を探したい場合、人の目で一行ずつ見るのは大変です。SQLを使えば、その条件を文章のように書くだけで、コンピューターが自動で探してくれます。

2. NULLとは何かを初心者向けに理解しよう

2. NULLとは何かを初心者向けに理解しよう
2. NULLとは何かを初心者向けに理解しよう

NULLとは、「値が入っていない状態」を表す特別なものです。空文字やゼロとは違い、「まだ何も決まっていない」「情報が存在しない」という意味を持ちます。

紙の名簿で例えると、何も書かれていない空欄がNULLです。ゼロや空白文字とは違い、「未記入」であることを表します。PostgreSQLでは、このNULLを特別に扱う必要があります。

3. IS NULLで空のデータを検索する

3. IS NULLで空のデータを検索する
3. IS NULLで空のデータを検索する

IS NULLは、値が入っていないデータだけを探すための書き方です。「この列が空欄の行を表示してください」という意味になります。

usersテーブル(SQL実行前)


id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | 
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 高橋次郎   | 22  | 
5  | 伊藤美咲   | 28  | misaki@example.com

SELECT *
FROM users
WHERE email IS NULL;

このSQLは、「メールアドレスが登録されていない人だけを表示してください」という意味になります。

実行結果


id | name       | age | email
---+------------+-----+-------------------
2  | 佐藤花子   | 19  | 
4  | 高橋次郎   | 22  | 

4. IS NOT NULLで値が入っているデータを探す

4. IS NOT NULLで値が入っているデータを探す
4. IS NOT NULLで値が入っているデータを探す

IS NOT NULLは、IS NULLの反対です。「空ではないデータ」を探すために使います。きちんと情報が入力されている行だけを確認したいときに便利です。


SELECT *
FROM users
WHERE email IS NOT NULL;

これは「メールアドレスが登録されている人だけを表示してください」という意味です。名簿で連絡先が書かれている人だけを抜き出す感覚に近いです。

5. なぜ = NULL では検索できないのか

5. なぜ = NULL では検索できないのか
5. なぜ = NULL では検索できないのか

初心者がよく間違えるのが、「email = NULL」と書いてしまうことです。NULLは普通の値ではないため、イコールで比べることができません。

NULLは「分からない状態」なので、「これと同じですか?」と聞いても答えが出ません。そのため、PostgreSQLではIS NULLという専用の書き方が用意されています。

6. WHERE句と組み合わせた実践的な使い方

6. WHERE句と組み合わせた実践的な使い方
6. WHERE句と組み合わせた実践的な使い方

IS NULLやIS NOT NULLは、他の条件と一緒に使うこともできます。例えば「20歳以上で、メールアドレスが未登録の人」を探すことも可能です。


SELECT *
FROM users
WHERE age >= 20
AND email IS NULL;

これは、条件を二つ同時に満たす人を探しています。紙の名簿で条件に印を付けていくイメージで考えると分かりやすいです。

7. IS NULLを使う場面と注意点

7. IS NULLを使う場面と注意点
7. IS NULLを使う場面と注意点

IS NULLは、未入力チェックや、登録漏れの確認などでよく使われます。会員登録やアンケート結果を確認するときに特に重要です。

ただし、NULLと空文字は別物です。見た目は同じ空欄でも、内部的には違う扱いになる場合があります。初心者のうちは「NULLは特別な空欄」と覚えておくと十分です。

8. NULLを正しく扱えると検索が正確になる

8. NULLを正しく扱えると検索が正確になる
8. NULLを正しく扱えると検索が正確になる

PostgreSQLのIS NULLとIS NOT NULLを理解すると、データベース検索の精度が一気に上がります。空のデータを意識せずに検索すると、必要な情報を見逃してしまうことがあります。

名簿の空欄を探す感覚で考えると、IS NULLはとても自然な考え方です。まずは基本の使い方をしっかり身につけることが大切です。

カテゴリの一覧へ
新着記事
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のUPDATE文の使い方(部分更新・条件更新)
No.5
Java&Spring記事人気No5
PostgreSQL
PostgreSQLとは?初心者向けに特徴をわかりやすく解説
No.6
Java&Spring記事人気No6
PostgreSQL
PostgreSQLスキーマ設計のベストプラクティス完全ガイド|初心者でもわかるデータベース整理術
No.7
Java&Spring記事人気No7
PostgreSQL
PostgreSQLスキーマ作成・削除完全ガイド!初心者でもわかるデータベース設計の基礎
No.8
Java&Spring記事人気No8
PostgreSQL
PostgreSQLの権限管理を完全解説|スキーマ単位で理解するデータベースセキュリティの基礎