//查询emp表中薪水比SCOTT高的员工信息:select*from emp
where ename ='SCOTT';//假设查出的SCOTT的信息中显示薪水为3000select*from emp
where sal >3000;//将上述两步合为一步:select*from emp
where sal >(select sal
from emp
where ename ='SCOTT');
需注意的问题
合理的书写风格(换行、缩进、对齐)
勿忘加小括号()
主查询和子查询可以是不同表,只要子查询返回的查询结果可以被主查询使用
//查询部门SALES中的员工信息://部门名称和对应部门编号在表dept中,员工信息在表emp中(部门信息只有部门编号)//多表查询法:select e.*from emp e, dept d
where e.deptno = d.deptno and dname ='SALES';//子查询法:select*from emp
where deptno =(select deptno
from dept
where dname ='SALES');//建议:在Oracle数据库中,多表查询和子查询均可完成查询任务时,优先使用子查询//尽管一般来讲,每当执行一次from语句时,内存都要从磁盘数据库中取数据,因此应尽可能减少from的调用,由此可知应优先使用多表查询//但Oracle数据库中,子查询更重要,其查询性能被深入优化过,较多表查询更有优势。