WHERE子句中常用的运算符

4.1 运算符及优先级:

算数运算符
*,/,+,-,

逻辑运算符
not, and ,or

比较运算符

单行比较运算 =,>, >=,<,<=, <>
多行比较运算 >any,>all,<any,<all,in,not in
模糊比较 like(配合“%”和“_”)
特殊比较 is null

()优先级最高

SQL>select ename, job, sal ,comm from emp where job='SALESMAN' OR job='PRESIDENT' AND sal> 1500;

考点:条件子句使用比较运算符比较两个选项,重要的是要理解这两个选项的数据类型。

4.2 用BETWEEN AND操作符来查询出在某一范围内的行.

SQL> SELECT ename, sal FROM emp WHERE sal BETWEEN 1000 AND 1500;

//between 低值 and 高值, 包括低值和高值。

4.3 模糊查询及其通配符:

在where字句中使用like谓词,常使用特殊符号"%"或"_"匹配查找内容,也可使用escape可以取消特殊符号的作用。

SQL>
create table test (name char(10));
insert into test values ('sFdL');
insert into test values ('AEdLHH');
insert into test values ('A%dMH');
commit;

SQL> select * from test;

NAME
----------
sFdL
AEdLHH
A%dMH

SQL> select * from test where name like 'A\%%' escape '\';

NAME
----------
A%dMH

4.4 ' '和" "的用法:

''内表示字符或日期数据类型,而" " 一般用于别名中有大小写、保留字、空格等场合,引用recyclebin中的《表名》也需要" ".

单引号的转义:连续两个单引号表示转义.

SQL> select empno||' is Scott''s empno' from emp where empno=7788;

EMPNO||'ISSCOTT''SEMPNO'
--------------------------------------------------------
7788 is Scott's empno

4.5 用IN操作符来检验一个值是否在一个列表中

SQL> SELECT empno, ename, sal, mgr FROM emp WHERE mgr IN (7902, 7566, 7788);

4.6 交互输入变量符&和&&的用途:

SQL> select empno,ename from emp where empno=&empnumber;
输入 empnumber 的值:  7788

EMPNO ENAME
---------- ----------
      7788 SCOTT

&后面是字符型的,注意单引号问题,可以有两种写法:

SQL> select empno,ename from emp where ename='&emp_name';
输入 emp_name 的值:  SCOTT

EMPNO ENAME
---------- ----------
      7788 SCOTT

SQL> select empno,ename from emp where ename=&emp_name;
输入 emp_name 的值:  'SCOTT'

EMPNO ENAME
---------- ----------
      7788 SCOTT

&&存储了第一次输入值,使后面的相同的&不再提问,自动取代。

SQL> select empno,ename,&&salary from emp where deptno=10 order by &salary;
输入 salary 的值:  sal

EMPNO ENAME             SAL
---------- ---------- --------------
      7934       MILLER           1300
      7782       CLARK            2450
      7839      KING              5000

注:上面给的&salary已经在当前session下存储了,可以使用undefine salary解除。

define(定义变量)和undefine命令(解除变量)

SQL> define    --显示当前已经定义的变量(包括默认值)

SQL> set define on|off可以打开和关闭&。

SQL> define emp_num=7788    --定义变量
SQL> select empno,ename,sal from emp where empno=&emp_num;

EMPNO ENAME             SAL
---------- ---------- ----------
      7788 SCOTT            3000

SQL>undefine emp_num        --取消变量

如果不想显示“原值”和“新值”的提示,可以使用set verify on|off命令

4.7 使用逻辑操作符: AND; OR; NOT

AND 两个条件都为TRUE ,则返回TRUE

SQL> SELECT empno,ename,job,sal FROM emp WHERE sal>=1100 AND job='CLERK';

EMPNO ENAME      JOB              SAL
 ----------   ----------  ---------     ----------
      7876  ADAMS      CLERK           1100
      7934  MILLER       CLERK           1300

OR 两个条件中任何一个为TRUE,则返回TRUE

SQL> SELECT empno,ename,job,sal FROM emp WHERE sal>=1100 OR job='CLERK';

EMPNO ENAME      JOB              SAL
----------    ----------   ---------    ----------
      7369 SMITH      CLERK                800
      7499 ALLEN      SALESMAN        1600
      7521 WARD      SALESMAN        1250
      7566 JONES      MANAGER         2975
      7654 MARTIN   SALESMAN        1250
......

已选择14行。

NOT 如果条件为FALSE,返回TRUE
SQL> SELECT ename,job FROM emp WHERE job NOT IN ('CLERK','MANAGER','ANALYST');

ENAME      JOB
---------- ---------
ALLEN       SALESMAN
WARD       SALESMAN
MARTIN    SALESMAN
KING         PRESIDENT
TURNER    SALESMAN

oracle之WHERE子句中常用的运算符的更多相关文章

  1. Java中常用的运算符

    运算符是一种“功能”符号,用以通知 Java 进行相关的运算,Java 语言中常用的运算符可分为如下几种: 算数运算符.赋值运算符.比较运算符.逻辑运算符.条件运算符. 一.算数运算符 Java 中常 ...

  2. Java学习笔记五:Java中常用的运算符

    Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...

  3. php中常用的运算符

    运算符 运算符是告诉PHP做相关运算的标识符号. PHP运算符一般分为算术运算符.赋值运算符.比较运算符.三元运算符.逻辑运算符.字符串连接运算符.错误控制运算符. 1.变量名记得加“$” 符: 2. ...

  4. Oracle入门第六天(中)——SET运算符(交并差集)

    一.概述 1.SET运算符是什么 将多个查询用 SET 操作符连接组成一个新的查询 UNION/UNION ALL——并集 INTERSECT——交集 MINUS——差集(A\B=A中去掉B中也有的元 ...

  5. java常用的运算符

    Java 语言中常用的运算符可分为如下几种: Ø 算术运算符 Ø 赋值运算符 Ø 比较运算符 Ø 逻辑运算符 Ø 条件运算符

  6. oracle中where 子句和having子句中的区别

    1.where 不能放在GROUP BY 后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函数 ...

  7. 在oracle中where 子句和having子句中的区别

    在oracle中where 子句和having子句中的区别 1.where 不能放在GROUP BY 后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用 ...

  8. oracle中where子句和having子句中的区别

    1.where  不能放在GROUP BY 后面2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE3.WHERE  后面的条件中不能有聚集函数 ...

  9. oracle SELECT子句中避免使用 ‘ * ‘

    当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 ‘*’ 是一个方便的方法. 不幸的是,这是一个非常低效的方法. 实际上,ORACLE在解析的过程中, 会将’*’ 依次转换成所 ...

随机推荐

  1. 深度优先搜索(dfs)与出题感想

    在3月23号的广度优先搜索(bfs)博客里,我有提到写一篇深搜博客,今天来把这个坑填上. 第一部分:深度优先搜索(dfs) 以上来自百度百科. 简单来说,深度优先搜索算法就是——穷举法,即枚举所有情况 ...

  2. day35:线程队列&进程池和线程池&回调函数&协程

    目录 1.线程队列 2.进程池和线程池 3.回调函数 4.协程:线程的具体实现 5.利用协程爬取数据 线程队列 1.线程队列的基本方法 put 存 get 取 put_nowait 存,超出了队列长度 ...

  3. DML语言(数据操纵语言)

    #DML语言/*数据操作语言:插入:insert修改:update删除:delete */ #一.插入语句#方式一:经典的插入/*语法:insert into 表名(列名,...) values(值1 ...

  4. cinder migrate基础内容-源码分析

    一.cinder-api服务入口 D:\code-program\cinder-codejuno\api\contrib\admin_actions.py from cinder import vol ...

  5. 第二篇 Scrum冲刺博客

    一.会议图片 二.项目进展 成员 完成情况 今日任务 冯荣新 搜索框,首页轮播图,分类导航 商品列表,商品详情轮播图 陈泽佳 背景展示,选择并显示图片 历史足迹,静态页面 徐伟浩 登录权限获取 商品信 ...

  6. Kafka内部实现原理

    Kafka是什么 在流式计算中,Kafka一般用来缓存数据,Storm通过消费Kafka的数据进行计算. 1)Apache Kafka是一个开源消息系统,由Scala写成.是由Apache软件基金会开 ...

  7. SpringBoot系列——MyBatis-Plus整合封装

    前言 MyBatis-Plus是一款MyBatis的增强工具(简称MP),为简化开发.提高效率,但我们并没有直接使用MP的CRUD接口,而是在原来的基础上封装一层通用代码,单表继承我们的通用代码,实现 ...

  8. 使用tess4j完成身份证和营业执照图片的文字识别

    这两天研究了一下关于OCR图文解析的技术.当然市场上已经有开源服务,比如百度的AI开放平台,就有OCR相关的API接口.我这里选用的是Tesseract开源框架,java封装版本是tess4j.结合网 ...

  9. python yaml文件数据按原有的数据顺序dump

    yml文件的更新后工具类: import os import yaml class YamlUtils(): def __init__(self,folder_name='config'): self ...

  10. 超简单集成华为HMS ML Kit文本识别SDK,一键实现账单号自动录入

    前言   在之前的文章<超简单集成华为HMS Core MLKit通用卡证识别SDK,一键实现各种卡绑定>中我们给大家介绍了华为HMS ML Kit通用卡证识别技术是如何通过拍照自动识别卡 ...