• MySQL ------ 过滤数据 and、or、in、not(七)


    更强的过滤控制:and 子句方式和 or 子句方式

    操作符(operator)用来联结或改变where 字句中的字句的关键字。也成逻辑操作符(logical operator)

    1、AND操作符:通过不止一个条件进行过滤

    where 与and 连用可以不止通过一个列进行过滤,将两个过滤条件组合在一起,用来检索满足所给定条件的行,两个条件后增加一个条件就要加一个and

    用到的表

    -- 将供应商是 1003 价格小于等于10 的商品检索出来,顺便排个序
    select prod_name,vend_id,prod_price from products where vend_id=1003 and prod_price<=10 order by prod_price;

    2、OR操作符 : 检索匹配任一条件的行

    你要是对数学熟悉,且,或,非有所了解,那么and 就是且,or 就是或

    -- 检索供应商是 1002 或 1003 的商品
    select prod_name,vend_id,prod_price from products where vend_id=1003 or vend_id =1002 order by prod_price;

    3、and 与 or 连用

    where 可包含任意数目的and 和or 操作符,允许两个结合进行更复杂过滤

    注意:

    1、SQL(与其他语言一样)也有自己的计算次序,and 比or 的 优先级更高。

    2、不要依赖默认的计算顺序,任何使用具有AND 和 OR 操作符的WHERE 字句,都应该使用圆括号进行明确的分组操作,圆括号没有坏处,还能消除歧义

    如:检索出价格为8 (含8) 以上且由1002 或1003制造的所有商品

    4、IN 操作符 : 指定条件范围,范围中的每个条件都可以进行匹配

    注意: in 取的 合法值由逗号分隔,放在括号里

    -- 查询价格是2.5 和 10 的商品
     select prod_name,vend_id,prod_price from products where prod_price in (2.5,10) order by prod_price;

    IN操作符 优点:

      1、in 操作符 一般比or 操作符执行的更快

      2、语法更清楚且更直观

      3、计算的次序更易管理(因为使用的操作符更少)

      4、可以包含其他select 语句,使其能更动态的建立where 子句

    5、NOT 操作符 : 否定他之后所跟的条件

     注意:MySQL中支持使用not 对 in、between 和exists 子句取反,与其他DBMS允许使用NOT 对各种条件取反有很大的差别。

    -- 查询价格不是2.5 和 10 的商品
    select prod_name,vend_id,prod_price from products where prod_price not in (2.5,10) order by prod_price;

  • 相关阅读:
    个人项目(Word Count Java)
    自我介绍+软工5问
    第六次实践
    第五次实践作业
    第四次实践作业
    第三次实践作业
    第二次实践作业
    第1次实践作业
    第06组 Beta版本演示
    第06组 Beta冲刺(4/4)
  • 原文地址:https://www.cnblogs.com/obge/p/12937808.html
Copyright © 2020-2023  润新知