开门见山,数据库引入null,主要赋予null两种语义:
- 值不存在
- 值未知
值不存在的情况是普遍存在的,就比如小区人员信息的表中有居民邮箱这个属性,小A没有邮箱,那他的邮箱属性对应的值就没办法描述,这时就该使用null。
值未知的情况也是普遍存在的,就比如企业雇员信息的表中有雇员住址这个属性,有的雇员的地址已更改,并且其新地址为未知的地址,这时就该使用null。
例子可能不太好,但应该还是足以表达该表达的了
当然,null 给数据库的访问和更新带来很多困难,因此应该尽量避免使用null。 有时我们可以使用为表添加 not null 约束,这可能是好的,也可能影响了实际的语义表达。