子查询

 

一。子查询解决什么问题: 一个查询查询不到结果的时候,可以使用子查询来丰富查询的条件

子查询的格式: 用一个小括号包含,然后在里面写sql语句
 子查询的注意事项:
 1. 一定要有小括号
 2. 一定要注意你的书写格式
 3. 子查询可以放在select,from ,where having,order by 后面
 4. 子查询一定不能放在group by的后面
 5. 子查询和主查询可以不是同一张表,只要子查询的结果在主查询中能用就可以
 5. 子查询中一般都不排序,但是在TOP-N中需要排序
 7. 一般是先执行子查询操作,在执行主查询操作,但是在相关子查询中先执行主查询,在执行子查询
 8. 对于子查询的结果,如果是单行只能用单行操作符,如果是多行,只能用多行操作符
 9. 自查中的null处理

例:select * from (

select ename,job,sal from emp
 );

一定要注意的地方: 子查询不能过多的去嵌套,一般嵌套三层,加多了就影响性能

 

对于子查询的结果,如果是单行只能用单行操作符,如果是多行,只能用多行操作符  --返回多行会与单行操作符不匹配

多行操作符 int not in any all

例: -- 查询比30号部门员工工资高的员工信息

  select * from emp where sal > any(
  select sal from emp where deptno = 30
  );

例:查询基层员工

 -- select *
    from emp
    where empno not in(
    select mgr from emp where mgr is not null
    );

posted @ 2016-04-05 19:59  金潼人  阅读(259)  评论(0编辑  收藏  举报