数据库的NULL值讨论

有许多关于数据库设计中NULL的讨论,我我的的设计习惯是,不使用NULL值。数据库

我所设计全部表都是Not Null的字段的,尤为是我主要作数据仓库的表设计。刚开始使用数据库时,就栽了一次。一个Group里面,我要显示成年人有多少个,另一个地方要显示未成年人有多少个,第三个地方要显示总人数。编程

N1(成年人数) = select count(*) from mygroup where age>=18; 结果是10数据库设计

N2(未成年人) = select count(*) from mygorup where age< 18; 结果是12编程语言

到第三个地方,为了减小查询,我直接显示了 10+12 = 22 人。后来客户说不对呀,咱们有23我的,想了半天才明白怎么回事,后来我常常拿这个考别人。设计

NULL使用起来很不方便。在各类编程语言中都支持这样的表达式 if(x==null) {...}. 可是在数据库理论中,null比较"奇怪"逻辑.select

3 > null, 返回false;
3 < null, 返回false;
3 = null, 返回false.数据

为了配合数据库的NULL值机制,C#引入了nullable机制,好比:int? v1 = field("age").value; 不然若是age的值是null,没法赋值给v1.查询

相关文章
相关标签/搜索