Nullは ゼロでも空でもない!
Nullはゼロ(0)ではない。もちろん、空でもないのだ。
ゼロや空と教える人は素人だ。信用しないほうが良い。
では、Nullは何なのか?
Nullは不定なのだ。値が定まっていない状態なのだ。
値は設定不可能もしくはわからない状態なのだ。
「声の色は?」 これは設定の不可能なのだ
「電車で隣に座っている人の名前」わからないけれど、名前はある。
このような状態がNullなのだ。
ちなみに、ゼロも空も値が定まった状態なのでNullではないのだ。
Nullは不定なので、1+不定 は 不定 なのだ。
すなわち 1 + Null = Null なのだ。
わからない値(Null)に 1 を足した結果はわからない(Null)なのだ。
SQLをやったことがある人は、SUMとか集計できるぞ!というかもしれない。
SQLの集約関数は、Nullを無視する。
Nullを無視するのだ。これは、件数を取得するとわかる。
tbl
+----+
│ col│
+----+
│ 10│
+----+
│ 20│
+----+
│Null│
+----+
select count(col) from tbl
結果:2 (カラム指定の場合はNullは無視)である。
ただし、
select count(*) from tbl
結果:3と返る。
このSQLはテーブルのレコード数を取得するので、カラム単体のNullは考慮(無視)されない。
最後にもう一度だけ、
Nullは ゼロでも空でもない!