SQL NULL深入探究

      正常观念来说,对于判断只有是与否两个逻辑,而在SQL中还有NULL,在SQL这个环境中,算是三值逻辑。

      NULL到底是什么? 是值?一个常量?变量?都不是!NULL既不是值也不是变量,NULL只是一个表示“没有值”的标记,它只是一个标记而已。

      在SQL中我们对于NULL的判断是:IS NULL 或者 IS Not NULL,而不是用比较符号如:=NULL 或 >NULL 或 <NULL 或 <> NULL 或 NULL=NULL,原因就是NULL只是一个标记,对于标记不可能使用比较符号去比较。

      对于=NULL 或 >NULL 或 <NULL 或 <> NULL 或 NULL=NULL可以理解为unknow,unknow是关系型数据库中第三个布尔型真值,表示“未知”的意思。

      那么true,false,unknow三者关系如下:

  • NOT 真值表:
X Not X
true false
unknow unknow
false true
  • AND 真值表
AND true unknow false
true true unknow false
unknow unknow unknow false
false false false false
  • OR 真值表
OR true unknow false
true true true true
unknow true unknow unknow
false true unknow false
  • 优先级顺序
    AND:false > unknow > true
    OR: true > unknow >false
原文地址:https://www.cnblogs.com/wangqilong/p/12540343.html