zoukankan      html  css  js  c++  java
  • 【《SQL进阶教程》】1-3 三值逻辑和NULL

    三、三值逻辑和NULL:

    一)为什么要使用三值逻辑?

    ​ 普通语言的布尔型只有truefalse两个值,这种逻辑体系被称为二值逻辑。而SQL语言里,还有第三个值unknown,因此这种逻辑体系被称作三值逻辑。

    1、两种NULL:

    ​ 最主要的原因就在于NULL值,因为NULL有两种含义,一种是不确定(unknown),另一种是不适用

    2、IS NULL:

    ​ 条件筛选语句中必须使用IS NULL,如果使用比较谓词= NULL,得到的结果总是unknown。NULL既不是值,也不是变量,只是一个表示“没有值”的标记,而比较谓词只适用于值。

    • IS NULL实际上就是一个谓词,而不是一个谓词IS和一个值NULL的组合。

    二)、unknown、第三个真值:

    ​ 这里所说的unknown与NULL中的unknown不同。前者是明确的布尔型的真值,而后者既不是值也不是变量。

    (AND的情况:false > unknown > true\OR的情况:true>unknown>false)

    1、在SQL中,排中律是不成立的。

    2、NOT IN 和 NOT EXISTS 不是等价的:

    • EXISTS只会返回true或者false。
  • 相关阅读:
    leetcode78 Subsets
    leetcode76 Minimum Window Substring
    leetcode73 Set Matrix Zeroes
    leetcode70 Climbing Stairs
    leetcode50 Pow(x, n)
    leetcode49 Group Anagrams
    leetcode48 Rotate Image
    正则表达式及字符处理
    RPM软件包管理.作业
    yum管理RPM包.作业
  • 原文地址:https://www.cnblogs.com/enmac/p/13110925.html
Copyright © 2011-2022 走看看