Welcome 微信登录

首页 / 数据库 / MySQL / Oracle子查询详解

子查询概念 :当一个查询的结果是另一个查询的条件时,称之为子查询。使用子查询注意事项:         子查询可以嵌套多层         子查询需要圆括号()括起来子查询语法:SELECT     select_list FROM       table WHERE    expr operator                           (SELECT    select_list                          FROM                  table);子查询 (内查询) 在主查询之前一次执行完成。子查询的结果被主查询使用 (外查询)。举例:查询员工的工资大于JONES的员工信息分析过程如下:首先:查询JONES的员工工资是多少 :结果2975SQL> select sal from emp where ename="JONES";实际上我们要查询的是:薪资大于2975的员工的信息写法如下:SQL> select * from emp where sal>2975;//综合以上写出子查询的结果如下:SQL> select * from emp where sal>(select sal from emp where ename="JONES");注意:l  子查询要包含在括号内。 l  将子查询放在比较条件的右侧。根据查询的结果(内部嵌套查询的结果)把子查询的类型分为单行子查询与多行子查询,   注意:l  单行操作符对应单行子查询,多行操作符对应多行子查询。单行操作符>、>=、 <、 <= 、<>、=举例://查询编号7876相同职位的员工信息 并且薪资大于编号为7521的薪资的员工信息SQL> select * from emp where job=( select job from emp where empno=7876) and sal>( select sal from emp where empno=7521);//子查询含有组函数SQL> select * from emp where sal>(select avg(nvl(sal,0)) from emp);//子查询含有having子句查询部门的最小工资大于20号部门最小工资的部门号及最小工资数SQL> select deptno,min(sal) from emp group by deptno having min(sal)>( select min(sal) from emp where deptno=20); 备注:子查询可以返回空行 没要查询到结果是可以的。 多行子查询l   返回多行。l  使用多行比较操作符。操作符如下图:
操作符描述
In等于列表中的任何一个
Any子查询返回的任意一个值比较 相同还有some
All和子查询返回的所有值比较  
Exists 
 //查询薪水小于工作岗位CLERK的任何一个薪资的员工信息并且不包含工作岗位为CLERK的员工信息SQL> select * from emp where sal < any (select sal from emp where job="CLERK") and job<>"CLERK";//all与所有值比较 >all 代表的是大于查询结果的最大值SQL> select * from emp where sal > all (select sal from emp where job="CLERK") and job<>"CLERK";//查询岗位与部门编号为10相同的员工信息 不包含自己。SQL> select * from emp where job in(select job from emp where deptno=10) and deptno<>10;Oracle 分组查询详解浅谈Oracle分区表之范围分区相关资讯      oracle数据库教程 
  • Oracle raw数据类型介绍  (01/29/2013 10:05:53)
  • 监听器注册与ORA-12514 错误分析  (11/13/2012 14:30:08)
  • Oracle SQL的cursor理解  (11/13/2012 14:16:17)
  • Oracle 如何强制刷新Buffer Cache  (01/29/2013 10:02:46)
  • dblink致Oracle库的SCN变成两库的  (11/13/2012 14:24:41)
  • Linux操作系统下完全删除Oracle数  (11/13/2012 08:25:52)
本文评论 查看全部评论 (1)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款