数据库空值陷阱

来源:互联网 发布:照片原图ps淘宝详情页 编辑:程序博客网 时间:2024/06/18 14:05

关系数据库,无论是Mysql、Sql server、Oracle,都会有空值,数据库的空值设计的目的,是为了不占用存储空间,与程序语言null相对应,但存储的合理性却带来了判断的麻烦,以下我列出几个陷阱:

1、算数运算中,如果有空值,整个表达式为空,这时可以用IsNull函数来赋予一个默认值(对应的Oracle的nvl或decode函数)

2、关系运算中,如果有空值,则返回false,类似where null <> 2或where null not in(1,2)都是false(对于Oracle更极端,空字符串''也是null)

这时可以采用 is null或is not null来判断

3、空值条件判断会使索引失效,因此数据库中存储关键查询字段时,尽量避免采用null值存储

0 0
原创粉丝点击