はじめてのSQL

SQL NULL(ヌル)とは

SQLでよく出てくるNULLってどういう意味ですか?

SQL NULL(ヌル)とは

NULL(ヌル)とは
そこに何も入っていない 未定義である事を表していて数字のゼロや空白とはまた別の意味になります
ではおこずかい帳テーブルで説明していきます

おこずかい帳テーブル  
日付費目入金出金
2019/09/01おこずかい5000NULL
2019/09/02チョコレートNULL100
2019/09/03まんがNULL378
2019/09/04えんぴつNULL100

例えば上記のテイブルで2019/09/01を見てみます
この日は5000円の入金がありましたが出金はNULLになってます
仮にこの日の出金がNULLでは無く0円だったとします 
そうなるとデータベースでは0円だけど出金があったと記録されます

ですがNULLにする事でこの日は未定義である事を意味するので 
出金が発生しなかったと定義されます

結局0円って意味なんだから一緒じゃあないの?

あんず
あんず
出金があったと何も無かったでは全く意味が違うんです

後日おこずかい帳の出金があった日だけを検索したくてもNULLを定義せずに 0を入れてしまうと 0円でも出金があったと判定されて0円の日にちも検索結果に反映される事になります

そっか!それじゃあ意味ないよね

WHERE句 では NULL は=(比較演算子)で判定できない

WHERE句とは?
NULLを指定したい時にやっちゃう うっかりミスはSQLをはじめたばかりの時はよくある代表的なミスですNULLは比較演算子では判定出来ないんです

NULL の判定方法

NULLである事を判定する
WHERE IS NULL  

NULLでない事を判定する
WHERE IS NOT NULL  

WHERE句の後に『IS NULL』『IS NOT NULL』のいずれかを記載します