--Oracle表查询(分组查询,多表查询,子查询,集合操作等)
--分组函数(max, min, avg, sum, count)
--1. 查询所有员工最高和最低工资
select max(sal) 最高工资, min(sal) 最低工资 from emp;
--2. 利用子查询查询最高工资的人是谁
select ename,sal from emp where sal = (select max(sal) from emp);
--3. group by(用于对查询的结果分组统计) 查询每个部门的平均工资和最高工资
select avg(sal), max(sal), deptno from emp group by deptno;
--4. having(用于限制分组显示结果)
select avg(sal), max(sal), deptno from emp group by deptno having avg(sal) < 2000;
--5. 多表查询
--a. 查询名字,工资及所在部门的名字
select e.ename, e.sal, d.dname from emp e, dept d where e.deptno = d.deptno;
--b. 查询员工的行吗,工资及工资级别
select e.ename, e.sal, s.grade from emp e, salgrade s where e.sal between s.losal and s.hisal;
--自连接 显示员工FORD的上级
select worker.ename, boss.ename from emp worker, emp boss
where worker.mgr = boss.empno and worker.ename = 'FORD';
--在多行子查询中使用all操作符
select ename, sal, deptno from emp
where sal > all(select sal from emp where deptno = 30);
--等价于:
select ename, sal, deptno from emp where sal >
(select max(sal) from emp where deptno = 30);
--在多行子查询中使用any操作符
select ename, sal, deptno from emp
where sal > any(select sal from emp where deptno = 30);
--等价于
select ename, sal, deptno from emp where sal >
(select min(sal) from emp where deptno = 30);
--多列子查询
select deptno, ename, job from emp
where (deptno, job) = (select deptno, job from emp where ename = 'SMITH');
--在from子句中使用子查询 如何显示高于自己部门平均工资的员工信息
select e.ename, e.deptno, e.sal, ds.avgsal from emp e,
(select deptno, avg(sal) avgsal from emp group by deptno) ds
where e.deptno = ds.deptno and e.sal > ds.avgsal;
--用查询结果创建新表
create table mytable(id, name, sal, job, deptno) as
(select empno, ename, sal, job, deptno from emp);
--合并查询 union取得两个结果的并集,自动去掉重复行,union all则不去除重复行
select ename, sal, job from emp where sal > 2500
union
select ename, sal, job from emp where job = 'MANAGER';
select ename, sal, job from emp where sal > 2500
union all
select ename, sal, job from emp where job = 'MANAGER';
--取交集 intersect
select ename, sal, job from emp where sal > 2500
intersect
select ename, sal, job from emp where job = 'MANAGER';
--取差集 minus
select ename, sal, job from emp where sal > 2500
minus
select ename, sal, job from emp where job = 'MANAGER';
相关推荐
数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf 数据库开发 Oracle数据库 SQL开发教程 第07章 子查询(共49页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf 数据库开发 Oracle数据库 SQL开发教程 第07章 子查询(共49页).pdf ...
10.1.1 在多表查询中使用子查询 10.1.2 在子查询中使用聚合函数 10.2 创建和使用返回多行的子查询 10.2.1 IN子查询 10.2.2 IN子查询实现集合交和集合差运算 10.2.3 EXISTS子查询 10.2.4 EXISTS子...
数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf 数据库开发 Oracle数据库 SQL开发教程 第07章 子查询(共49页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf 数据库开发 Oracle数据库 SQL开发教程 第07章 子查询(共49页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf 数据库开发 Oracle数据库 SQL开发教程 第07章 子查询(共49页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf 数据库开发 Oracle数据库 SQL开发教程 第07章 子查询(共49页).pdf ...
1.6.2 多表插入 15 1.7 UPDATE语句 17 1.8 DELETE语句 20 1.9 MERGE语句 22 1.10 小结 24 第2章 SQL执行 25 2.1 Oracle架构基础 25 2.2 SGA-共享池 27 2.3 库高速缓存 28 2.4 完全相同的语句 29 2.5 SGA-缓冲区缓存...
数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf 数据库开发 Oracle数据库 SQL开发教程 第07章 子查询(共49页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf 数据库开发 Oracle数据库 SQL开发教程 第07章 子查询(共49页).pdf ...
14.4子查询、连接、集合总结 29 十五、 排名分页问题 30 15.1什么是rownum 30 15.2 where rownum的执行过程 30 15.3 where rownum=5的执行过程 30 十六、 约束constraint 31 16.1约束的类型 31 16.2 primary key:...
数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf 数据库开发 Oracle数据库 SQL开发教程 第07章 子查询(共49页).pdf ...
《Oracle11g宝典》以Oracle提供的示例数据库为背景,从基本原理、理论提高、实际操作、经验策略、应用开发等方面,结合命令行方式、开发工具的使用、管理工具的使用、Oracle与Windows之间的关系等知识点,按照学习...
作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握Oracle SQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:...
数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf 数据库开发 Oracle数据库 SQL开发教程 第07章 子查询(共49页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf 数据库开发 Oracle数据库 SQL开发教程 第07章 子查询(共49页).pdf ...
其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...
9.6.2 内连接与右外连接的综合应用 9.6.3 UNION集合运算与多表连接应用 9.7 小结第10章 子查询 10.1 子查询的简单应用 10.1.1 子查询概述 10.1.2 在多表查询中使用子查询 10.1.3 在子查询中使用聚合函数 10.1.4 使用...
数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf 数据库开发 Oracle数据库 SQL开发教程 第07章 子查询(共49页).pdf ...