《用实例学习SQL》第六篇:空值的讨论

相关表
(一)我们首先讲一下空值的定义:

在数据库中,null代表空值,其是指“不知道”,“不存在”,**“不确定”**的值,其中请重点注意这个空值是一个“不确定”的值。

我们知道要判断表中一个数据是不是空值用“is null”和“is not null”而不能用“=”,那这个是为什么?

很简单,上面说过,null是一个不确定的值,也就是说它可能是任意一个值也可能什么值都不是,这是一个不确定的,随时可以改变的,那既然是一个不确定的东西,那它能与其他的数值相等吗?显然是不能的,所以别说某个具体数值不能等于null,就连“null=null”都是不对的,因为两个都是不确定的值,不存在相等呀。
所以综上所述:对于null的判断只能是“is null”和“is not null”

(二)上面我们从空值的定义说了对于空值的判断方式,接下来说一下关于空值的运算结果和比较结果(三值逻辑的由来)
(1)、运算结果:
空值与另外任意值(包括null)的运算结果都是空值
(2)、比较结果:
空值与另外任意值(包括null)的比较结果都是UNKNOWN
我们知道在传统的逻辑运算中结果只有TRUE和FALSE,当我们在关系中引进了null概念后,传统的二值逻辑转换成了三值逻辑,任何值与null的比较结果都是UNKNOWN

你可能感兴趣的:(《用实例学习SQL》系列)