Oracle2

    技术2022-05-20  36

    条件查询

    1.条件查询

    SELECT *|{[DISTINCT] column|expression [alias],...}

    FROM table 

    [WHERE condition(s)];

    Condition(s)要使用到比较运算符常用的比较运算符如下:

    操作符

    含义

    =

    等于

    >

    大于

    >=

    大于等于

    <

    小于

    <=

    小于等于

    <>

    不等于 等效于!=

    其它操作

    And 逻辑运算  逻辑与

    Or  逻辑运算  逻辑或

    Not 逻辑运算  逻辑否

    Between 起始值 and 结束值:使用 BETWEEN 运算来显示在一个区间内的值 包含(起始结束值)

    In: 使用 IN运算显示列表中的值。 In(,,,)相当于一个集合,只要出现集合中匹配的就显示

    Like

    使用 LIKE 运算选择类似的值 

    选择条件可以包含字符或数字:

    • 代表零个或多个字符(任意个字符) 

    • 代表一个字符。 

    Escape

       回避特殊符号的:使用转义符。例如:将[%]转为[/%][_]转为[/_],然后再加上[ESCAPE /即可

    Null:

    使用 IS (NOT) NULL 判断空值。 

    //查询部门号为10的员工信息  部门为整数类型

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno=10; 

    //查询职位号为MANAGER的员工信息  岗位的类型为字符类型

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='MANAGER';

    //查询部门号为10并且员工的职位为MANAGER的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='MANAGER' and deptno=10;

    注意:

    字符和日期要包含在单引号中 

    字符大小写敏感,日期格式敏感 

    默认的日期格式是 DD-MON-RR 

    //查询部门号大于10的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno>10;

    //查询薪水大于等于3000的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=3000;

    //查询薪水不等于3000的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal<>3000;

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal !=3000;

    //查询薪水大于2000并且小于3000的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>2000 and sal<3000;

    //查询薪水大于等于2000并且小于等于3000的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal between 1600 and 3000;

    //等效于

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=1600 and sal<=3000;

    //查询部门号位1020的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno in(10,20);

    //注意:相当于如下操作:

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno =10 or deptno=20;

    //查询员工名称以S开头的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like 'S%';

    //查询员工名称以S结尾的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%S';

    //查询员工名称第三个字符为N的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '__N%';

    //查询员工名称中含有N的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%N%';

    //查询员工名称中倒数第二个字符为%的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%/%_'escape'/';

    //查询员工名称总含有%的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%/%%'escape'/';

    //查询奖金为null的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where comm is null;

    //查询奖金非null的员工信息

    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where comm is not null;

    优先级表格:

    优先级

    1

    算术运算

    2

    连接符

    3

    比较符

    4

    Is not null like not in

    5

    Not between

    6

    not

    7

    and

    8

    Or

    备注:可以采用括号改变优先级

    未完,待续......


    最新回复(0)