データベースを理解する 011「ないものはない」

社員テーブルを作ったものの、退職した人もいるので列を増やしましょう。
入社日と退職日を増やします。型はどちらも日付型です。

【定義】
社員番号:文字列型の4文字(一意性制約あり)
社員名 :文字列型の50文字
入社日 :日付型
退職日 :日付型

で、6名の入社日と退職日をそれぞれ入力しました。

【データ】
社員番号  | 社員名  | 入社日    | 退職日
=========+==========+===========+============
1759   | X山 B郎 | 2001-04-01| 2015-03-31
2827   | C田 D彦 | 2016-04-01| 
3339   | A口 F子 | 2015-04-01| 
4210   | G本 H行 | 2008-04-01| 2011-05-31
4211   | D藤 Z子 | 2018-02-01| 
0212   | Z坂 X人 | 2018-03-01| 

さて、6人中2人はすでに退職しているので退職日を入れられました。
残り4人はまだ会社にいますので、入れようがありません。

この時の入れようがない人の退職日はどう扱えばいいでしょうか?

* * * * * *

データベースやプログラム言語では何もないことを表現するのに「Null」を使います。これはヌル、または、ナルと読みます。

よって、入れようのない人の退職日にはNullが入り、データは以下の通りとなります。

【データ】
社員番号  | 社員名  | 入社日    | 退職日
=========+==========+===========+============
1759   | X山 B郎 | 2001-04-01| 2015-03-31
2827   | C田 D彦 | 2016-04-01| (null)
3339   | A口 F子 | 2015-04-01| (null)
4210   | G本 H行 | 2008-04-01| 2011-05-31
4211   | D藤 Z子 | 2018-02-01| (null)
0212   | Z坂 X人 | 2018-03-01| (null)

何も入れなくていいよー、という時にその項目には何もしません。
何も入らないのでNullになります。何らかの値が入っているわけではありませんので要注意。

余談:
Nullは、「Null」という文字列や値が入っているわけではありません。
Nullをどう表示するかは、ソフトウェアによって異なります。

ある日、テスト用にNullを登録するつもりで'NULL'という文字列を登録してしまいました。その後、プログラムが想定しない動きをしたので、なぜ?と思ってデータを見ていたところ、「あっ!NULLという文字列が入ってる!」と気づきました。気付くまでに30分を要しました。。。

この記事が気に入ったらサポートをしてみませんか?