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

  • 相关阅读:
    DDD防腐层设计
    java毕业设计宠物销售管理系统Mybatis+系统+数据库+调试部署
    精美的早安问候语,暖心祝福,开心每一天
    mpls 笔记 part 1
    BENTLY 350015 127610-01数字量输入模块
    LinkedList与链表
    sketch有哪些好用的技巧,很少人知道
    《中国机器人产业发展报告(2022年)》发布:预计2022年中国机器人市场规模174亿美元,五年年均增长22%(免费领取报告)
    ubuntu添加环境变量
    NLP大模型的训练
  • 原文地址:https://blog.csdn.net/tysonchiu/article/details/125486273