• 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 否定任何条件。

  • 相关阅读:
    海外ASO:iOS与谷歌优化的相同点和区别
    Java基础(二十五):JDBC
    SpringBoot
    低代码(Low-Code)将成为未来发展的趋势
    使用Jmeter进行http接口性能测试
    【SpringMVC】重定向和转向详解
    Java项目校园兼职平台(三层架构+设计模式重构版)小结
    决策树模型(4)Cart算法
    功能测试想进阶,可以提供一点点思路和方向吗?
    如何从零开始拆解uni-app开发的vue项目(一)
  • 原文地址:https://blog.csdn.net/tysonchiu/article/details/125486273