1 言葉の意味
「空文字列」
・・・ マニュアルでは「長さが0(ゼロ)の文字値」。値が設定されていない文字列
「NULL」
・・・ マニュアルでは「行のある列の値がない場合」。データが存在しない
・二つの意味は普段異なる意味として使用される。
→Oracle DataBaseでは、空文字列を同一視する仕様がある
2 実験(11g Express Edition上で実行)
[1] 以下のようなテーブルを用意
列名 | 型 |
---|---|
ID | 数値型 |
NAME | 文字列型 |
[2] データを挿入
以下のSQLを発行
INSERT INTO M_FRUITS(ID, NAME) VALUES(1, 'apple');
INSERT INTO M_FRUITS(ID, NAME) VALUES(2, 'banana');
INSERT INTO M_FRUITS(ID, NAME) VALUES(3, NULL); ←NULLを挿入
INSERT INTO M_FRUITS(ID, NAME) VALUES(4, ''); ←空の文字列
[3] データを抽出
以下のSQLを発行
SELECT *
FROM M_FRUITS
WHERE NAME IS NULL
実行結果

3 参考資料
Oracle® Database SQL言語リファレンス – NULL
NULL
コメント