Oracle数据库 sql条件查询语句与练习

2020-09-20 19:44:17 浏览数 (2)

一、where 过滤行记录条件 ,条件有

a)、= 、 >、 <、 >=、 <=、 !=、 <>、 between and b)、and 、or、 not、 union、 union all、 intersect 、minus c)、null :is null、 is not null、 not is null d)、like :模糊查询 % _ escape('单个字符') f)、in 、 exists(难点) 及子查询m

二、集合操作

代码语言:javascript复制
Union、Union All、Intersect、Minus

Union,并集(去重) 对两个结果集进行并集操作,不包括重复行同时进行默认规则的排序; Union All,全集(不去重) 对两个结果集进行并集操作,包括重复行,不进行排序 ; Intersect,交集(找出重复) 对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序; Minus,差集(减去重复) 对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序

三、排序

代码语言:javascript复制
使用 ORDER BY 排序,排序不是真实改变存储结构的顺序,而是获取的集合的 顺序。

顺序 :asc(默认) desc 多字段: 在前面字段相等时,使用后面的字段排序 空排序: 降序为 desc,注意 null 为最后

----------------------------------------分割线------------------------------------------

练习:

1、限制查询数据

(1)查询EMP表显示工资超过2850的雇员姓名和工资。 select ename 姓名,sal 工资 from emp where sal>2850;

(2)查询EMP表显示工资不在1500~2850之间的所有雇员及工资。 select * from emp where sal not between 1500 and 2850;

(3)查询EMP表显示代码为7566的雇员姓名及所在部门代码。 select ename 姓名,deptno 部门编号 from emp where empno=7566;

(4)查询EMP表显示部门10和30中工资超过1500的雇员名及工资。 select ename 姓名,sal 薪资 from emp where deptno in(10,30) and sal>1500;

(5)查询EMP表显示第2个字符为"A"的所有雇员名其工资。 select ename,sal from emp where ename like '_A%';

(6)查询EMP表显示佣金非空的所有雇员名及其佣金。 select comm from emp where comm is not null;

2、排序数据

(1)查询EMP表显示所有雇员名、工资、雇佣日期,并以雇员名的升序进行排序。 select ename,sal,hiredate from emp order by ename;

(2)查询EMP表显示在1981年2月1日到1981年5月1日之间雇佣的雇员名、 岗位及雇佣日期,并以雇佣日期进行降序。 select ename, job, hiredate from emp where hiredate between to_date('1981-02-01', 'yyyy-mm-dd') and to_date('1981-05-01', 'yyyy-mm-dd') order by hiredate desc;

(3)查询 EMP 表显示获得补助的所有雇员名、工资及补助,并以工资升序和补助降序排序。 select ename,sal,comm from emp where comm is not null order by sal asc,comm desc;

0 人点赞