データベースを理解する 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分を要しました。。。