「null」と「空文字」と「0(zero)」のお話

データーベース処理や、プログラミングでしばしば問題というか、引っかかるところに「nullと空文字と0」の違いがあります。
世の中のプログラミング言語やデータベースにも空文字とnullを区別するものとしないものが混ざっていたりして、さらに話をややこしくしているようです。(そもそも、分かりにくい概念なのに)

たとえば、下記のようなCSVファイルを読み込んだとき、

社員番号, 氏名, 出身大学
1001010, 大崎 隆也, 東京大学
1001020, 品川 大介, 京都大学
1001030, , 大阪大学
1001040, 目黒 雄大, 北海道大学

社員番号:1001030の「氏名」がどのように読み込まれるのか?は、使っている言語やツールにより異なります。Java言語で作成されたツールは概ねnullになるようですが、C/C++言語で作成された(ちょっと古めの)ツールでは、空文字になることが多いようです。

さらにJava言語でnullと読み込んだとしても、それをデータベース:Oracleに登録すると、空文字に変わってしまいます。一方、データベース:SQLServerに登録した場合は、nullのままで登録されます。