nullのある行を取得してみよう!SQL超初心者の勉強

2020-10-22

nullを取得するにはどうしたらいいのか、SQLを始めたころは全くわかりませんでした。
一度でも取得してしまえば、簡単なので取得してみましょう。
※nullとは値がなにもない状態です。スペースとは違うので気をつけましょう。

動作環境

SQL FIDDLEMySQL5.6PostgreSQL9.6SQLiteで動作確認しました。
下記文章は主にPostgreSQLの仕様で調べています。

is null

null値を取得するには「is null」を使用します。英語がわかる人なら覚えやすいですね。
「where カラム名 is null」を日本語で言い換えれば、「カラム名がnullであるところ」となります。

ついでにnullでない箇所を取得するには「is not null」を使用します。

構文

書き方の例です。

SELECT * FROM テーブル名 where カラム名 is null;

nullでない箇所を取得するには以下の書き方になります。

SELECT * FROM テーブル名 where カラム名 is not null;

実際にnull値を取得してみよう!

SQL FIDDLEを使うとオンライン上で実験ができます。

準備

テーブルを作成。

-- CREATE文
CREATE TABLE item (
ItemID numeric(8, 0) unique not null,
Tittle character varying (20) ,
episode character varying (20),
primary key(ItemID)
);
-- INSERT文
insert into item
values(0001, '家政婦は見た!', null),
(0002, '金田一少年の事件簿', '第2話'),
(0003, null, '第3話'),
(0004, 'リーガルハイ', null),
(0005, null, null)

以下のテーブルを使ってnullの行を取得してみます。

temidtittleepisode
1家政婦は見た!(null)
2金田一少年の事件簿第2話
3(null)第3話
4リーガルハイ(null)
5(null)(null)
item

null値を取得する

tittleがnullの箇所を取得してみましょう。

SELECT * FROM item where Tittle is null;

■ 結果

ItemIDTittleepisode
3(null)第3話
5(null)(null)

応用 nullじゃないところ

SELECT * FROM item where Tittle is not null;

■ 結果

ItemIDTittleepisode
1家政婦は見た!(null)
2金田一少年の事件簿第2話
4リーガルハイ(null)

おわり

nullを取得する方法わかってしまえばすごく簡単ですね。

nullを別の値に変換してみたくなった方はこちらへ。