Oracle复杂查询(三)

简介: 在from中使用子查询:如上例Oracle复杂查询(二)最后一行,在from语句中使用子查询时,该子查询会被作为一个视图来对待,因此叫做内嵌视图,而且必须要给子查询制定别名!!【注意:在给列取别名时可以加as,而给表...

在from中使用子查询:

如上例Oracle复杂查询(二)最后一行,在from语句中使用子查询时,该子查询会被作为一个视图来对待,因此叫做内嵌视图,而且必须要给子查询制定别名!!

【注意:在给列取别名时可以加as,而给表加别名不可加as】

分页子查询:Oracle一共有三种  1、rownum   2、分析函数    3、rowid效率最高

一、rownum分页

第一步:先做子查询:select * from  emp;

第二步:显示rownum【oracle分配的】

select  a1.*,rownum  rn   from   (select * from emp)  a1;

第三步:显示6到10 号的数据

  select  a1.*,rownum  rn   from   (select * from emp)  a1   where  rownum<=10; 【此处rownum不可用别名】

select * from ( select  a1.*,rownum  rn   from   (select * from emp)  a1   where  rownum<=10)  where  rn >=6;

【注意:不能直接写成select  a1.*,rownum  rn   from   (select * from emp)  a1   where  rownum<=10 and  rownum>=6或者是用between  and,都不可以,oracle 的分页一次只能使用一次,类似于二分法】



查询的变化

a、指定查询咧,只需要修改最里层的子查询

b、如何排序,只需要修改最里层的子查询


用查询结果创建新表;

create table  mytable (id,name,sal,job,deptno)  as  select  empno,ename,sal,job,deptno,from emp;


合并查询:【速度远远高于and,or等等】

有时候在实际应用中,为例合并多个select语句的结果,可以使用集合操作符union,union all ,intersect,minus;

(1)union  

该操作用于取得两个结果集的并集,会自动去除结果集中的重复行,

select  ename  ,sal ,job  from  emp  where  sal >2500 union select  ename  ,sal ,job  from  emp  where  job ='manager'

(2)union all   与union相似,但不会取消重复行,而且不会排序。

select  ename  ,sal ,job  from  emp  where  sal >2500 union all   select  ename  ,sal ,job  from  emp  where  job ='manager'

(3)intersect

使用该操作符用于取得两个结果集的交集

select  ename  ,sal ,job  from  emp  where  sal >2500  intersect select  ename  ,sal ,job  from  emp  where  job ='manager'

(4)minus

两个结果集的差集,会显示存在第一个集合中,而不存在第二个集合中的数据


相关文章
|
2月前
|
SQL Oracle 关系型数据库
Oracle查询优化-查询只包含数字或字母的数据
【2月更文挑战第4天】【2月更文挑战第10篇】查询只包含数字或字母的数据
86 1
|
3月前
|
SQL Oracle 关系型数据库
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
66 0
JAVAEE框架数据库技术之12_oracle常用函数和高级查询子查询
|
1月前
|
SQL Oracle 关系型数据库
Oracle系列之八:SQL查询
Oracle系列之八:SQL查询
|
5月前
|
SQL Oracle 关系型数据库
Oracle 代码异常查询(九)
Oracle 代码异常查询
139 0
|
2月前
|
Oracle 关系型数据库
Oracle 递归查询
Oracle 递归查询
10 0
|
3月前
|
SQL Oracle 关系型数据库
oracle查询数据库参数sql语句
oracle查询数据库参数sql语句
|
3月前
|
SQL Oracle 关系型数据库
oracle查询数据库状态sql语句
oracle查询数据库状态sql语句
|
3月前
|
SQL Oracle 关系型数据库
Linux环境下oracle切换用户并查询数据库命令
Linux环境下oracle切换用户并查询数据库命令
|
3月前
|
SQL Oracle 关系型数据库
Oracle高级查询
Oracle高级查询
62 1
|
4月前
|
存储 Oracle 关系型数据库
百度搜索:蓝易云【oracle dblink mysql查询text无法显示问题】
通过使用 `DBMS_HS_PASSTHROUGH` 包执行 MySQL 查询并返回 CLOB 类型结果,可以解决 Oracle 数据库中无法直接显示 MySQL TEXT 类型数据的问题。
46 0