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. 教你如何使用ES6的Promise对象

    教你如何使用ES6的Promise对象 Promise对象,ES6新增的一个全新特性,这个是 ES6中非常重要的一个对象 Promise的设计初衷 首先,我们先一起了解一下,为什么要设计出这么一个玩意 ...

  2. keil5 使用JLink 向nrf52840DK 下载程序出现No Cortex-M SW Device Found

    今天打开52840 keil5 工程,下载程序无法下载成功,提示如下: 在Jlink 配置中(Option for target....-> Debug->Setting )SWDIO也无 ...

  3. python基础 Day11

    python Day11 函数中默认参数的陷阱 只针对默认参数是可变的数据类型(如果你的默认参数指向的是可变的数据类型,那么你无论调用多少次默认参数,都是同一个) def test(name,list ...

  4. MYSQL语法(一)

    数据表准备: CREATE TABLE student3 ( id int, name varchar(20), age int, sex varchar(5), address varchar(10 ...

  5. [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

    Linux下安装MySQL执行scripts/mysql_install_db --user=mysql脚本时,报错如下: Filling help tables...2019-12-24 16:46 ...

  6. Mac本软件安装之后打不开的解决办法

    Mac本软件安装之后打不开的解决办法 MacOS系统版本10.15.3 一,安装Axure RP 9 问题:安装之后打不开 提示“Axure RP 9已损坏,无法打开”或“打不开 Axure RP 9 ...

  7. Vue的Options

    el:挂载点 与$mount有替换关系 new Vue({ el: "#app" }); new Vue({}).$mount('#app') 注:被你选为挂载点的那个元素,如果在 ...

  8. 牛客网PAT练习场-到底买不买

    题目地址:https://www.nowcoder.com/pat/6/problem/4065 题意:用数组统计好字符,最后进行相减,最后进行统计 /** * *作者:Ycute *时间:2019- ...

  9. 从零开始的SpringBoot项目 ( 二 ) 使用IDEA创建一个SpringBoot项目

    工欲善其事 , 必先利其器 . IntelliJ IDEA 2019.3.3 x64的安装与破解 下面详细说明下如何使用idea创建我们的第一个springboot项目: 首先打开idea主界面选择 ...

  10. AtCoder Beginner Contest 177 题解

    AtCoder Beginner Contest 177 题解 目录 AtCoder Beginner Contest 177 题解 A - Don't be late B - Substring C ...