oracle逻辑运算符与其优先级简介

Oracle的逻辑运算符也是用在SQL语句中必不可少的因素,一共有三个


逻辑运算符


意义


and


双值运算符,如果左右两个条件都为真,则得到的值就为真


or


双值运算符,只要左右两个条件有一个为真,则得到的值就为真


not


单指运算符,如果原条件为真,则得到真,如果元条件为假,反之如果原条件为假,则结果为真

Oracle的逻辑运算符也是用在SQL语下面使一些例子:

Select * from emp where sal > 2000 and job = ‘SALESMAN';

寻找那些工资高于2000的且职位为销售的职员。

Select * from emp where job = ‘CLERK' or deptno = 20;

寻找那些工作为CLERK或者所在部门标号为20的职员的列表

   Select * from emp where not (sal > 3000 or sal < 1500);

寻找那些工资既不大于3000也不小于1500,也即在1500到3000范围的员工,相当于:select * from emp where sal between 1500 and 3000;

结合到前面所列出的各类运算符,在这里汇总一下oracle中所有运算符的优先级句中必不可少的因素,一共有三个


运算符


级别


算术运算符(即‘+',‘-',‘*',‘/')


1


连接运算符(即‘||')


2


比较运算符(即‘>',‘>=',‘<',‘<=',‘<>')


3


Is [not] null,[not] like,[not] in


4


[not] between-and


5


not


6


and

 

or

 

通常使用‘()'可以改变运算符的优先级。

需要注意的是and的优先级要优于or,也就是说

下面的语句

Select * from emp where sal < 1500 or sal >= 2000 and job = ‘ANALYST';

等价于

Select * from emp where sal < 1500 or (sal >= 2000 and job = ‘ANALYST');

而不是你所预期的

Select * from emp where (sal < 1500 or sal >= 2000) and job = ‘ANALYST';

一般我们即使我们要表达第一个语句所要表达的意思,为了避免误解,都不采取第一种写法,而是用括号来表明我们要先算后面的部分。

总结

本文关于oracle逻辑运算符与其优先级简介就到这里,希望对大家有所帮助。感兴趣的朋友可以参阅:Oracle RMAN自动备份控制文件方法介绍  、 oracle逻辑结构分析 、  oracle 数据库启动阶段分析 、  oracle 虚拟专用数据库详细介绍等。有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对我们网站的支持。

(0)

相关推荐

  • Oracle Arraysize设置对于逻辑读的影响实例分析

    当执行一条SQL查询的时候,为了获得满足的数据,查询在这个过程中完成解析,绑定,执行和提取数据等一系列步骤,这些步骤都是单独执行的,满足条件的数据行必须由数据库返回给应用:对于任何大小的结果集,需要返回的数据行很可能不是在一次往返调用过程中传递给应用的! 每次调用过程中,数据库与客户端之间的往返回路数将一定层次上影响总的响应时间,其中除了提取数据(FETCH)步骤,其余步骤(解析,绑定,执行)都只执行一次,这也是必要的,Oracle需要获得满足查询条件的所有数据结果从而执行多次提取操作. 关于提

  • oracle中通配符和运算符的使用方法介绍

    用于where比较条件的有: 等于:=.<.<=.>.>=.<> 包含:in.not in exists.not exists 范围:between...and.not between....and 匹配测试:like.not like Null测试:is null.is not null 布尔链接:and.or.not 通配符: 在where子句中,通配符可与like条件一起使用.在Oracle中: %(百分号): 用来表示任意数量的字符,或者可能根本没有字符. _(

  • oracle逻辑结构分析

    oracle的逻辑结构包括表空间(tablespace),段(segment),区(extent),数据块(data block) oracle数据库在逻辑上是由多个表间组成的,表空间中存储的对象叫段,比如数据段,索引段,和回退段.段由区组成,区是磁盘分配的最小单位.段的增大是通过增加区的个数来实现的.每个区的大小是数据块大小的整数倍,区的大小可以不相同:数据块是数据库中最小的I/O单位,同时也是内存数据缓冲区的单位,及数据文件存储空间单位.块的大小由参数DB_BLOCK_SIZE设置,其值应设

  • Oracle查看逻辑读、物理读资源占用排行的SQL语句

    查看逻辑读前10的SQL: 复制代码 代码如下: set linesize 300; set pagesize 300; set long 50000; SELECT * FROM (     SELECT sql_fulltext AS sql, SQL_ID,buffer_gets / executions AS "Gets/Exec",buffer_gets, executions     FROM V$SQLAREA     WHERE buffer_gets > 100

  • Oracle数据库逻辑备份的SH文件

    正在看的ORACLE教程是:Oracle数据库逻辑备份的SH文件.完全备份的SH文件:exp_comp.sh rq=` date +"%m%d" ` su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/export/db_comp$rq.dmp" 累计备份的SH文件:exp_cumu.sh rq=` date +"%m%d" ` su - oracle -

  • oracle逻辑运算符与其优先级简介

    Oracle的逻辑运算符也是用在SQL语句中必不可少的因素,一共有三个 逻辑运算符 意义 and 双值运算符,如果左右两个条件都为真,则得到的值就为真 or 双值运算符,只要左右两个条件有一个为真,则得到的值就为真 not 单指运算符,如果原条件为真,则得到真,如果元条件为假,反之如果原条件为假,则结果为真 Oracle的逻辑运算符也是用在SQL语下面使一些例子: Select * from emp where sal > 2000 and job = 'SALESMAN'; 寻找那些工资高于2

  • Oracle开发之分析函数简介Over用法

    一.Oracle分析函数简介: 在日常的生产环境中,我们接触得比较多的是OLTP系统(即Online Transaction Process),这些系统的特点是具备实时要求,或者至少说对响应的时间多长有一定的要求:其次这些系统的业务逻辑一般比较复杂,可能需要经过多次的运算.比如我们经常接触到的电子商城. 在这些系统之外,还有一种称之为OLAP的系统(即Online Aanalyse Process),这些系统一般用于系统决策使用.通常和数据仓库.数据分析.数据挖掘等概念联系在一起.这些系统的特点

  • Oracle开发之分析函数(Rank, Dense_rank, row_number)

    一.使用rownum为记录排名: 在前面一篇<Oracle开发之分析函数简介Over>,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题: ①对所有客户按订单总额进行排名 ②按区域和客户订单总额进行排名 ③找出订单总额排名前13位的客户 ④找出订单总额最高.最低的客户 ⑤找出订单总额排名前25%的客户 按照前面第一篇文章的思路,我们只能做到对各个分组的数据进行统计,如果需要排名的话那么只需要简单地加上rownum不就行了吗?事实情况是否如此想象般简单,我们来实践一下. [1]测试环境

  • Oracle开发之分析函数总结

    这一篇是对前面所有关于分析函数的文章的总结: 一.统计方面: 复制代码 代码如下: Sum() Over ([Partition by ] [Order by ])    Sum() Over ([Partition by ] [Order by ]       Rows Between  Preceding And  Following)        Sum() Over ([Partition by ] [Order by ]      Rows Between  Preceding An

  • JavaScript逻辑运算符相关总结

    前言 关于 JavaScript 中的逻辑运算符,我们经常使用却可能不知道它的一些机制和用法. 机制 首先我们需要知道几种逻辑运算符的优先级是不同的(关于完整的运算符优先级,看运算符优先级),逻辑非>逻辑与>逻辑或>条件运算符(三目运算符).运算顺序条件运算符是从右向左,而逻辑与和逻辑或都是从左向右. //表达式的优先级导致结果不同 false && true || true // 结果为 true false && (true || true) // 结

  • MySQL查询语句大全集锦

    1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA; 3:选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4:查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5:创建一个数据库表 mysql> CREATE TAB

  • SQL Sever查询语句大全集锦

    一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的 表或视图.以及搜索条件等. 例如,下面的语句查询testtable表中姓名为"张三"的nickname字段和email字段. 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表.星号.表达式.变量(包括局

  • SQL Server查询语句大全集锦

    一. 简单查询 简单的Transact-SQL查询只包括选择列表.FROM子句和WHERE子句.它们分别说明所查询列.查询的 表或视图.以及搜索条件等. 例如,下面的语句查询testtable表中姓名为"张三"的nickname字段和email字段. 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表.星号.表达式.变量(包括局

  • PHP递归创建多级目录

    我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkdir($dir,0777)){ //查看目录是否已经存在或尝试创建,加一个@抑制符号是因为第一次创建失败,会报一个"父目录不存在"的警告. echo $dir."创建成功<br>"; //输出创建成功的目录 }else{ $dirArr=explode('/',$dir); //当子目录没创建成功时,试图创建父目

  • VBScript教程 第六课VBScript运算符

    VBScript 有一套完整的运算符,包括算术运算符.比较运算符.连接运算符和逻辑运算符. 运算符优先级 当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优先级.可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分.运算时,总是先执行括号中的运算符,然后再执行括号外的运算符.但是,在括号中仍遵循标准运算符优先级. 当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符.所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符.算

随机推荐