0%

mysql笔记


true、false、unknown 和 null

​ SQL 的保留字中,有很多都被归为谓词一类。例如,“=、<、>”等比较谓词,以及 BETWEEN、LIKE、IN、IS NULL 等。

​ 谓词是一种特殊的函数,返回值是真值。前面提到的每个谓词,返回值都是 truefalse 或者 unknown(一般的谓词逻辑里没有unknown,但是 SQL 采用的是三值逻辑,因此具有三种真值)。

​ 另外,注意:任何与 NULL 值进行的比较都会与第三种值 UNKNOWN 做比较。这个“任何值”包括 NULL 本身。要想 和 null 比较 只能用 is null或者 is not null,这样才会返回true或者false。另外永远记住一点,null和<,>,=,<>这些放在一起结果永远是unknown,比如如 2=null,结果肯定是unknown,而unknown在三值逻辑中不是true也不是false,在写where子句的筛选条件时尤其要注意。

请务必牢记

  • and运算,只要有一边是unknown,另一边是false,那结果就是false,其它情况下,只要任意一边有unknown,结果就是unknown。
  • or运算,只要一边是unknown,那么结果永远就是unknown
  • not unknown 的结果是 unknown

SQL语句的内连接,外连接,左连接,右连接,全连接详解例子

具体请看:https://blog.csdn.net/qq_45064695/article/details/118997954