• AND、OR运算符的组合使用


    6.2.3  AND、OR运算符的组合使用

    在WHERE子句中,通过AND、OR运算符能够同一时候连接多个条件。当然AND、OR运算符也能够同一时候使用。可是当AND、OR运算符同一时候存在时,其优先级怎样确定呢?与大多数语言一样,SQL语言觉得AND运算符的运算级别要高于OR运算符。即当出现

    condition1
    OR   condition2
    AND   condition3

    时。其运算实际上是等价于

    condition1
    OR   (condition2 AND condition3)

    .因此,AND、OR运算符须要同一时候使用时,一定要注意运算符的优先级。


    实例5  同一时候使用AND、OR运算符实现查询

    假如须要查询全部计算机系和生物系中。且工资收入(SAL)超过1000的教师的姓名(TNAME)、系(DNAME)、工资(SAL)信息。假设採用例如以下SQL代码:

    SELECT  TNAME, DNAME, SAL
    FROM   TEACHER
    WHERE    DNAME='计算机'
    OR   DNAME='生物'
    AND   SAL>1000
    ORDER BY  SAL
    .执行结果如图6.5所看到的。

     
    图6.5  计算机系或者生物系中工资大于1000的教师

    非常显然没有得到预期的计算结果,这是由于AND运算符的运算级别要高于OR运算符。代码实际上实现的查询是计算机系的全部教师以及生物系中的工资大于1000的教师的相关信息。要实现例中须要的查询结果。正确的SQL代码为:

    SELECT  TNAME, DNAME, SAL
    FROM   TEACHER
    WHERE    (DNAME='计算机' OR DNAME='生物')
    AND   SAL>1000
    ORDER BY  SAL

    执行结果如图6.6所看到的。

     
    图6.6  计算机系和生物系中工资大于1000的教师

    能够发现,当在OR运算符连接的两个条件加上括号( )后,得到了须要的查询结果。

    这是由于,括号( )的优先级高于AND运算符,运行过程就先于AND运算符。

    注意 当OR运算符和AND运算符同一时候运用时,建议用户不要考虑其默认的优先级顺序,而是採用括号( )来实现须要的运行顺序。这样能够增强程序的可读性。

  • 相关阅读:
    程序是如何在 CPU 中运行的(二)
    程序是如何在 CPU 中运行的(一)
    结构体内存对齐解析
    如何以面向对象的思想设计有限状态机
    union 的概念及在嵌入式编程中的应用
    STM32 内存分配解析及变量的存储位置
    C语言如何实现继承及容器
    C语言指定初始化器解析及其应用
    pandas中的 where 和mask方法
    python中的类变量
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6812659.html
Copyright © 2020-2023  润新知