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. 安装黑苹果MoJave记录

    说实话安装黑苹果并不是一件很简单的事情,它既费时,而且还需要一定的计算机知识,最重要的是对于你来说可能黑苹果并没有Linux或者Windows好用. 好了废话不多说,开始吧. 1.硬件准备 并不是什么 ...

  2. Debug很重要

    之前做一个小功能,就是用php发送邮件,项目中已经使用了wordpress的wp_mail,所以同事建议我继续用wp_mail函数. 然而遇到了一个奇怪的情况,邮件没有发出去,也没有任何报错日志. 照 ...

  3. Ubuntu18.04 安装 Fabric & 使用 Fabric 测试网络

    前言: 本文介绍在 Ubuntu 18.04 中安装 Fabric, 并对 官方文档中的一个小案例(Using the Fabric test network)进行测试. 目的: 初步了解 Fabri ...

  4. Linux下mv命令高级用法

    mv 也是 Linux 下一个使用频率非常高的命令,但除了一些基本用法,你还知道它的哪些高级用法呢? 1. 基本用法 移动一个/多个文件: 移动一个/多个目录: 重命名文件/目录. 这些都是很基本的用 ...

  5. AWS 学习笔记之 VPC

    原文:https://ericfu.me/aws-notes-vpc/ VPC 把 VPC 想象成一个逻辑上的数据中心 包含一个 IGW (Internet Gateway)或者 Virtual Pr ...

  6. python 计算文件md5值

    md5是一种常见不可逆加密算法,使用简单,计算速度快,在很多场景下都会用到,比如:给用户上传的文件命名,数据库中保存的用户密码,下载文件后检验文件是否正确等.下面讲解在python中如何使用md5算法 ...

  7. Redis取出中文乱码问题

    直接打开Redis客户端,如果存储了中文的内容,取出时会发生乱码: 解决办法很简单,打开客户端时加上 --raw,这样就可以了: 顺便说一下,-a后面跟的是密码,打码了,各位见谅!

  8. FormData格式的数据

    向服务器提交的是FormData格式的数据 || 必须添加以下两个配置项 contentType:false, processData:false,

  9. 2020,最新Model的设计-APP重构之路

    很多的app使用MVC设计模式来将“用户交互”与“数据和逻辑”分开,而model其中一个重要作用就是持久化.下文中设计的Model可能不是一个完美的,扩展性强的model范例,但在我需要重构的app中 ...

  10. spring集成shiro,事务失效问题 not eligible for auto-proxying

    BeanPostProcessor bean实例化顺序有关,@Configuration会最先实例化,也就是在spring启动完成之前. 导致Configuration中使用的注入,没能在spring ...