• 谓词


    通俗来讲谓词就是函数中的一种,是需要满足特定条件的函数,该条件就是返回值是真值。

    对通常的函数来说,返回值有可能是数字、字符串或者日期等,但是谓词的返回值全都是真值(TRUE/FALSE/UNKNOWN)。这也是谓词和函数的最大区别

    1. LIKE谓词——字符串的部分一致查询
    2. BETWEEN谓词——范围查询
    3. IS NULL、IS NOT NULL——判断是否为NULL
    4. IN谓词——OR的简便用法
    5. EXIST谓词

    ● LIKE

    "="只有在字符串完全一致时才为真,与之相反,LIKE 谓词更加模糊一些,当需要进行字符串的部分一致查询时需要使用该谓词。 

    % 是代表“0 字符以上的任意字符串”的特殊符号

    _表了“任意1 个字符”

    ● BETWEEN

    使用BETWEEN 可以进行范围查询。

    BETWEEN 的特点就是结果中会包含最小最大这两个临界值
    如果不想让结果中包含临界值,那就必须使用<和>

    ● IS NULL、IS NOT NULL——判断是否为NULL

    为了选取出某些值为NULL 的列的数据,不能使用=,而只能使用特定的谓词IS NULL。

    与此相反,想要选取NULL 以外的数据时,需要使用IS NOT NULL。

    ● IN谓词——OR的简便用法

    在使用INNOT IN 时是无法选取出NULL 数据的。NULL 终究还是需要使用IS NULL 和IS NOT NULL 来进行判断。

    ⭐IN和子查询

      IN 谓词(NOT IN 谓词)具有其他谓词所没有的用法,那就是可以使用子查询作为其参数。“能够将表作为IN 的参数”或者说“能够将视图作为IN 的参数”。

     注意:NOT IN (a,b,c,...)括号中如果出现 NULL ,则所有行的求值为FALSEUNKNOWN,并且不返回任何行

    ● EXIST谓词

    之前我们学过的谓词,基本上都是像“列LIKE 字符串”或者“列BETWEEN 值1 AND 值2”这样需要指定2 个以上的参数,而EXIST 的左侧并没有任何参数。

    因为EXIST 是只有1 个参数的谓词。EXIST 只需要在右侧书写1 个参数,该参数通常都会是一个子查询进一步讲,EXIST 通常都会使用关联子查询作为参数

    EXIST 只关心记录是否存在,因此返回哪些列都没有关系,只有存在记录时才返回真(TRUE)。

    可以把在EXIST 的子查询中书写SELECT * 当作SQL 的一种习惯。

      就像EXIST 可以用来替换IN 一样,NOT IN 也可以用NOT EXIST来替换。NOT EXIST 与EXIST 相反,当“不存在”满足子查询中指定条件的记录时返回真      (TRUE)。

  • 相关阅读:
    x-www-form-urlencoded与multipart/form-data区别
    objc_msgSend method_getTypeEncoding 与 @encode
    历史文件备份,原文件已损失
    和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他)
    HTTP权威指南 目录
    Makefile 与tab
    NSString+URLParser NSScanner
    (转)虚拟文件系统(VFS)浅析
    Linux套接字与虚拟文件系统(1):初始化和创建
    linux内核中的文件描述符(二)--socket和文件描述符
  • 原文地址:https://www.cnblogs.com/philipchan/p/14331345.html
Copyright © 2020-2023  润新知