• SQL必需掌握的100个重要知识点:IN 操作符


    IN 操作符用来指定条件范围,范围中的每个条件都可以进行匹配。 IN 取
    一组由逗号分隔、括在圆括号中的合法值。下面的例子说明了这个操作符。

    输入▼
    SELECT prod_name, prod_price
    FROM Products
    WHERE vend_id IN ('DLL01','BRS01')
    ORDER BY prod_name;
    输出▼
    prod_name prod_price
    ------------------- ----------
    12 inch teddy bear 8.9900
    18 inch teddy bear 11.9900
    8 inch teddy bear 5.9900
    Bird bean bag toy 3.4900
    Fish bean bag toy 3.4900
    Rabbit bean bag toy 3.4900
    Raggedy Ann 4.9900
    分析▼
    此 SELECT 语句检索由供应商 DLL01 和 BRS01 制造的所有产品。 IN 操作
    符后跟由逗号分隔的合法值,这些值必须括在圆括号中。
    你可能会猜测 IN 操作符完成了与 OR 相同的功能,恭喜你猜对了!下面
    的 SQL语句完成与上面的例子相同的工作。
    输入▼
    SELECT prod_name, prod_price
    FROM Products
    WHERE vend_id = 'DLL01' OR vend_id = 'BRS01'
    ORDER BY prod_name;
    输出▼
    prod_name prod_price
    ------------------- ----------
    12 inch teddy bear 8.9900
    18 inch teddy bear 11.9900
    8 inch teddy bear 5.9900
    Bird bean bag toy 3.4900
    Fish bean bag toy 3.4900
    Rabbit bean bag toy 3.4900
    Raggedy Ann 4.9900
    为什么要使用 IN 操作符?其优点如下。
      在有很多合法选项时, IN 操作符的语法更清楚,更直观。
      在与其他 AND 和 OR 操作符组合使用 IN 时,求值顺序更容易管理。
     IN 操作符一般比一组 OR 操作符执行得更快(在上面这个合法选项很
    少的例子中,你看不出性能差异)。
     IN 的最大优点是可以包含其他 SELECT
    语句,能够更动态地建立
    WHERE 子句。第 11课会对此进行详细介绍。
    IN
    WHERE 子句中用来指定要匹配值的清单的关键字,功能与 OR 相当。
    5.3  NOT 操作符
    WHERE 子句中的 NOT 操作符有且只有一个功能,那就是否定其后所跟的
    任何条件。因为 NOT 从不单独使用(它总是与其他操作符一起使用),所
    以它的语法与其他操作符有所不同。 NOT 关键字可以用在要过滤的列前,
    而不仅是在其后。
    NOT
    WHERE 子句中用来否定其后条件的关键字。
    下面的例子说明 NOT 的用法。为了列出除 DLL01 之外的所有供应商制造
    的产品,可编写如下的代码。

    输入▼
    SELECT prod_name
    FROM Products
    WHERE NOT vend_id = 'DLL01'
    ORDER BY prod_name;
    输出▼
    prod_name
    ------------------
    12 inch teddy bear
    18 inch teddy bear
    8 inch teddy bear
    King doll
    Queen doll
    分析▼
    这里的 NOT 否定跟在其后的条件,因此,DBMS 不是匹配 vend_id 为
    DLL01 ,而是匹配非 DLL01 之外的所有东西。
    上面的例子也可以使用 <> 操作符来完成,如下所示。
    输入▼
    SELECT prod_name
    FROM Products
    WHERE vend_id <> 'DLL01'
    ORDER BY prod_name;
    输出▼
    prod_name
    ------------------
    12 inch teddy bear
    18 inch teddy bear
    8 inch teddy bear
    King doll
    Queen doll

    分析▼
    为什么使用 NOT ?对于这里的这种简单的 WHERE 子句,使用 NOT 确实
    没有什么优势。但在更复杂的子句中, NOT 是非常有用的。例如,在
    与 IN 操作符联合使用时, NOT 可以非常简单地找出与条件列表不匹配
    的行。 
    说明:MariaDB 中的 NOT
    MariaDB 支持使用 NOT 否定 IN 、 BETWEEN 和 EXISTS 子句。大多数
    DBMS允许使用 NOT 否定任何条件。

  • 相关阅读:
    lab1-3 使用通用脱壳工具
    Apache IoTDB 分布式架构三部曲(二)分片与负载均衡
    Vue中computed -计算属性详解
    logo商标识别易语言代码
    王杰C++day5
    【论文阅读】《Graph Neural Prompting with Large Language Models》
    数据监测都可以监测啥
    《痞子衡嵌入式半月刊》 第 59 期
    网络安全之ARP欺骗防护
    MIT 6.S081 Operating System/Fall 2020 macOS搭建risc-v与xv6开发调试环境
  • 原文地址:https://blog.csdn.net/tysonchiu/article/details/125486273