Oracle嵌套子查询及exists使用

1.子查询

子查询:在一个查询的内部还包括另一个查询,则此查询为子查询

Sql的任何位置都可以加入子查询

范例:查询比7654工资高的员工

Oracle嵌套子查询及exists使用

 

拓展:根据员工编号升序排列

select * from emp t where t.sal > (select e.sal from emp e where e.empno = 7654) order by t.empno

Oracle嵌套子查询及exists使用

范例:查询出比雇员7654的工资高,同时从事和7788的工作一样的员工

Oracle嵌套子查询及exists使用

范例:要求查询每个部门的最低工资和最低工资的雇员和部门名称

Oracle嵌套子查询及exists使用

再返回多条记录的子查询可以把它的结果集当做一张表给他起个别名,如图中a

范例:查询出来所有和每个部门最低工资的员工工资相等的人

Oracle嵌套子查询及exists使用

2.Exists 和 not exists关键字的用法:

exists(sql) 返回结果集为真

not exists(sql 不反悔结果集为真)

范例:查询出所有员工的部门有哪些?

Oracle嵌套子查询及exists使用

 

Oracle嵌套子查询及exists使用