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运算符同一时候运用时,建议用户不要考虑其默认的优先级顺序,而是採用括号( )来实现须要的运行顺序。这样能够增强程序的可读性。

AND、OR运算符的组合使用的更多相关文章

  1. PHP 太空船运算符(组合比较符)

    PHP 7 新增加的太空船运算符(组合比较符)用于比较两个表达式 $a 和 $b,如果 $a 小于.等于或大于 $b时,它分别返回-1.0或1. 实例 <?php // 整型比较 print( ...

  2. 前端学PHP之运算符

    × 目录 [1]总括 [2]算术运算符 [3]赋值运算符[4]位运算符[5]比较运算符[6]错误控制[7]逻辑运算符[8]字符串连接[9]数组运算符 前面的话 运算符是可以通过给出的一或多个表达式来产 ...

  3. [Java 基础]运算符和表达式

    Java运算符 (1)赋值操作符 赋值操作符(=)表示:取右边的值(即右值),把它复制给左边(即左值). 右值可以是任意的常量.变量或表达式(只要可以生成一个值). 左值必须是一个明确的.已命名的变量 ...

  4. python3 第五章 - 什么是变量、运算符、表达式

    在读这一章时,运算符的内容比较多,不要去死记.现在记不住也没有关系,现在只要有这个印象.在后面的学习中,会慢慢加深理解,在理解中去记就容易得多了 1.变量 什么是变量?通俗的讲,就是存储在内存中可以变 ...

  5. php之运算符

    运算符优先级相同,运算符的结合方向决定了该如何运算, 一.运算符优先级 组合方向 运算符 附加信息 无 clone new clone和new 左 [ array 右 ** 算术运算符 右 ++ -- ...

  6. Swift5 语言指南(二十八) 高级运算符

    除了Basic Operators中描述的运算符之外,Swift还提供了几个执行更复杂值操作的高级运算符.这些包括C和Objective-C中您熟悉的所有按位和位移运算符. 与C中的算术运算符不同,S ...

  7. 【JavaScript 3—基础知识点】:运算符

    导读:其实看到这个运算符的学习,很有一种熟悉感,因为在总体看来,和之前的C++有很多类似的地方,但当时觉得简单,没有总结.所以,这次一定得总结了.其实,知识的罗列,基础的积累,在学习中也很重要. 一. ...

  8. Swift5.1 语言指南(二十九)高级运算符

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  9. 搞定PHP面试 - 运算符知识点整理

    一.算术运算符 1. 概览 例子 名称 结果 $a + $b 加法 $a 和 $b 的和. $a - $b 减法 $a 和 $b 的差. $a * $b 乘法 $a 和 $b 的积. $a / $b ...

随机推荐

  1. Bootstrap模态框垂直居中展示的方法

    在bootstrap.js中加入以下代码:

  2. .net开发CAD2008无法调试的解决方法

    把acad.exe.config文件修改为:------------------------------------------------------------------------------ ...

  3. (七)MySQL数据操作DQL:多表查询2

    (1)准备环境 1)创建员工表 mysql> create table company.employee6( -> emp_id int auto_increment primary ke ...

  4. 16.RDD实战

    第16课:RDD实战 由于RDD的不可修改的特性,导致RDD的操作与正常面向对象的操作不同,RDD的操作基本分为3大类:transformation,action,contoller 1.   Tra ...

  5. 通过Cookie来记住用户名出现乱码问题(URL编码)

    在登录时,提交一个中文名的用户名到服务器并返回到客户端的Cookie中时, 这个过程会后台会报 java.lang.IllegalArgumentException (非法数据异常) -->在给 ...

  6. 【cocos2d-js官方文档】二、资源管理器Assets Manager

    这篇文档将介绍Cocos2d-JS 3.0的一个重量级新特性:资源管理器(仅支持JSB).资源管理器是为游戏运行时的资源热更新而设计的,这里的资源可以是图片,音频甚至游戏脚本本身.使用资源管理器,你将 ...

  7. 3、Flask实战第3天:url_for使用

    我们之前是通过url来找到对应的视图函数 /     =>    hello_world 那么url_for则是通过视图函数找到url hello world  =>  / 演示如下 .. ...

  8. 数据结构-二叉搜索树(BST binary search tree)

    本文由@呆代待殆原创,转载请注明出处:http://www.cnblogs.com/coffeeSS/ 二叉搜索树简介 顾名思义,二叉搜索树是以一棵二叉树来组织的,这样的一棵树可以用一个链表数据结构来 ...

  9. 【AC自动机】hdu2222 Keywords Search

    AC自动机模板题,给你n个模式串和一个文本串,问你有几个模式串在文本串出现过. 注意防止重复统计 这里推荐一波郭大爷的介绍,简单易懂. http://www.bilibili.com/video/av ...

  10. 【树状数组】bzoj2789 [Poi2012]Letters

    处理数组A,A[i]表示字符串a的第i个字符排序后应去的位置,队列可. 对于多次出现的字符,其在a中的顺序和在b中的顺序应该是一一对应的. #include<cstdio> #includ ...