zoukankan      html  css  js  c++  java
  • 第5课 高级数据过滤

    第5课 高级数据过滤

    5.1 组合WHERE子句

    5.1.1 AND操作符

    要通过不止一个列进行过滤,可以使用AND操作符给WHERE子句附加条件。

    SELECT prod_id, prod_price, prod_name
    FROM Products
    WHERE vend_id = 'DLL01' AND prod_price <= 4;
    

    此SQL语句检索由供应商DLL01制造且价格小于等于4美元的所有产品的名称和价格。

    AND
    用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行。

    这个例子只包含一个AND子句,因此最多有两个过滤条件。可以增加多个过滤条件,每个条件间都要使用AND关键字。

    5.1.2 OR操作符

    OR操作符与AND操作符正好相反,它指示DBMS检索匹配任一条件的行。事实上,许多DBMS在OR WHERE子句的第一个条件得到满足的情况下,就不再计算第二个条件了(在第一个条件满足时,不管第二个条件是否满足,相应的行都将被检索出来)。

    SELECT prod_name, prod_price
    FROM Products
    WHERE vend_id = 'DLL01' OR vend_id = ‘BRS01’;
    

    OR
    WHERE子句中使用的关键字,用来表示检索匹配任一给定条件的行。

    5.1.3 求值顺序

    WHERE子句可以包含任意数目的AND和OR操作符。允许两者结合以进行复杂、高级的过滤。

    SQL(像多数语言一样)在处理OR操作符前,优先处理AND操作符。

    SELECT prod_name, prod_price
    FROM Products
    WHERE (vend_id = 'DLL01' OR vend_id = ‘BRS01’)
    AND prod_price >= 10;
    

    提示:在WHERE子句中使用圆括号
    任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。不要过分依赖默认求值顺序,即使它确实如你希望的那样。使用圆括号没有什么坏处,它能消除歧义。

    5.2 IN操作符

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

    SELECT prod_name, prod_price
    FROM Products
    WHERE vend_id IN ( 'DLL01', 'BRS01' )
    ORDER BY prod_name;
    

    你可能会猜测IN操作符完成了与OR相同的功能,恭喜你猜对了!下面的SQL语句完成与上面的例子相同的工作:

    SELECT prod_name, prod_price
    FROM Products
    WHERE vend_id = 'DLL01' OR vend_id = 'BRS01'
    ORDER BY prod_name;
    

    IN
    WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。

    5.3 NOT操作符

    NOT
    WHERE子句中用来否定其后条件的关键字。

    为了列出除DLL01之外的所有供应商制造的产品,可编写如下的代码:

    SELECT prod_name
    FROM Products
    WHERE NOT vend_id = 'DLL01'
    ORDER BY prod_name;
    

    5.4 小结

    这一课讲授如何用AND和OR操作符组合成WHERE子句,还讲授了如何明确地管理求值顺序,如何使用IN和NOT操作符。

  • 相关阅读:
    Jmeter 设置中文
    不同JDK版本直接的intern()方法的区别---JDK6 VS JDK6+
    java内存模型中堆和栈的区别
    JVM三大性能调优参数 -Xms -Xmx -Xss的含义
    Class<?>中isAssignableFrom()方法与instanceof关键字
    Lua中ipairs 和 pairs的区别
    Redis主从同步中的repl_backlog_buffer和repl_buffer
    Redis-开启使用AOF日志
    将windows 文件复制到linux上去
    winform集成第三方应用引起灾难性崩溃处理
  • 原文地址:https://www.cnblogs.com/zhangsonghui/p/12943683.html
Copyright © 2011-2022 走看看