null 及操作
总结:除了 is null、is not null 以外,对 null 的任何操作的结果还是 null
null 是数据库中特有的数据类型,当一条记录的某个列为 null,则表示这个列的值是未知的、是不确定的
。既然是未知的,就有无数种的可能性。因此,null并不是一个确定的值。这是 null 的由来、也是 null 的基础,所有和 null 相关的操作的结果都可以从 null 的概念推导出来。
简单的说,由于 null 存在着无数的可能,因此两个 null 既不是相等的关系,又不是不相等的关系,同样不能比较两个 null 的大小,这些操作都是没有意义的,得不到一个确切的答案的。
因此有以下结论:
- 判断一个字段是否为 null,应该用 is null 或 is not null,而不能用 ‘=’ 。
对 null 的判断只能定性,而不能定值。
- 对 null 的 =、!=、>、<、>=、<= 等操作的结果都是未知的,也就算说,这些操作的结果仍然是null。
- 对 null 进行 +、-、*、/ 等操作的结果也是未知的,所以也是 null。
所以,很多时候会这样总结 null,除了 is null、is not null 以外,对 null 的任何操作的结果还是 null。
参考链接: oracle null值和索引
参考链接: Oracle何时为null列值建立索引