子查询,分页查询

From 加上子查询

查出高于平均工资的所有员工信息

Select deptno,avg(sal ) anysal  from enp ;查询出了平均工资

Select a1.deptno, a1.ename, a2.anysal from emp a1,(Select deptno,avg(sal ) anysal  from emp group by deptno)a2 where a1.deptno= a2.deptno and sal>a2.anysal;

使用from 子查询时候,这个子查询可以作为一个视图来用。内嵌视图。在from里边使用子查询的时候,必须给子查询七个别名,这里不加as 列查询的时候列的可以用as

Select a1.deptno, a1.ename, a2.anysal from emp a1,(Select deptno,avg(sal ) as anysal  from emp group by deptno) a2 where a1.deptno= a2.deptno and sal>a2.anysal;

加红的位置是可要可不要

加绿的地方是不需要的

 

 

分页查询

Oracle 分页查询的三种方法

1. rownum

使用后oracle 会自动分配一个组号,一次只能用一次,所以修改的时候只需要修改最里的子查询。

查询emp 表的时候可以使用 select *from emp;

也可以采用另一种方式

Select a1.* ,rownum nu from(select *from emp)a1;这个里边的子语句可以作为一个视图来用。

查询出组号大于3小于7

select *from(Select a1.* ,rownum nu from(select *from emp)a1 where rownum<7)where nu>3 ;

select *from (Select a1.* ,rownum nu from(select *from emp)a1) where nu<10 and nu>7 ;

注意

最里层的可以作为视图,如果要修改只需修改里层就可以。

给数据排序的话,也只需修改里层。

 

Rowid 分页 效率高 比较的复杂。

这个是用于快捷创建的方式(经常会用于几个表的导入导出操作)

 

 

合并查询

有的时候再实际应用中,为了合并多个select 语句的结果。

可以使用集合操作符号 union ,union all, intersect,minus

union

该操作符用于取得两个结果集的并集。使用该操作符时,会自动去掉结果集中重复的内容。

查询出工资大于2500并且工作时管理者的所有用户。

Select ename ,job,sal from emp where sal >2500 union select  ename,job,sal from emp where job=MANAGER;(字段需要大写)

会自动处理重复内容。

(集合的方式)

 

 

Union all 是只会显示而不进行处理重复内容。

Select ename ,job,sal from emp where sal >2500 union all select  ename,job,sal from emp where job=MANAGER;(取出来所有的数据)

 

intersect(合并查询)使用这个操作符来取两个结果的交集。

   Select ename ,job,sal from emp where sal >2500 intersect select  ename,job,sal from emp where job=MANAGER;(取出的是两个集合的交集)

 

minus使用这个字符操作取得两个集合里面的差集,只存在第一个集合,不存在第二个集合中的数据。

集合操作高于and 操作的速度。但是做起来就复杂一些。

Select ename ,job,sal from emp where sal >2500 minus select  ename,job,sal from emp where job=MANAGER;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值