oracle子查询

网友投稿 286 2022-09-07

oracle子查询

子查询:

■ 什么是子查询

子查询是指嵌入在其它sql语句中的select语句,也叫嵌套查询

■ 单行子查询

单行子查询是指只返回一行数据的子查询语句

select * from emp where deptno=(select deptno from dept where deptno=30);

请思考:如何显示与SMITH同一部门的所有员工?

■ 多行子查询

多行子查询指返回多行数据的子查询

select * from emp where deptno in (10,20,30,40);

->select * from emp where deptno in ( select deptno from emp );

select * from emp where deptno in(30);

->select * from emp where deptno in( select deptno from dept where deptno=30)

->select * from emp where deptno in( select deptno from dept where dname='SALES')

#多列子查询:返回多个字段的多行数据

select * from emp where (deptno,ename) in (select deptno,ename from emp where sal>800);

多表查询:

#多表查询是指基于两个和两个以上的表或是视图的查询.在实际应用中,查询单个表可能不能满足你的需求

1、如显示sales部门位置和其员工的姓名),这种情况下需要使用到(dept表和emp表)

思路:找到sales部门的编号deptno,根据编号找到对应的员工,工作地址

select e.ename ,d.loc from emp e,dept d where (e.deptno,d.deptno) in (select dd.deptno,dd.deptno from dept dd where dd.dname='SALES');

长的,笨的

select e.ename,d.loc from emp e,dept d where e.deptno =(select deptno from dept where dname='SALES') and d.deptno =(select deptno from dept            where dname='SALES');

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:营销工作的本质是什么?是传递价值还是争夺资源?
下一篇:获取servletContext对象的方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~