--如果需要一个查询语句提供一个值,则必须确保这个查询语句返回一行一列(即一个值)
--1、查询工资高于ALLEN的员工信息
select * from emp where sal>(select sal from emp where ename ='ALLEN')--子查询提供了一个值
--通过一个查询语句查询出ALLEN的工资
select sal from emp where ename ='ALLEN' --我们可以将一个一行一列的结果集看成一个数值
--2、查询工资高于公司平均工资的员工信息
select * from emp where sal > (select avg(sal) from emp)
--3、查询与SMITH不在同一部门工作的员工
select * from emp where deptno != (select deptno from emp where ename ='SMITH')
--SMITH的所在部门编号
select deptno from emp where ename ='SMITH'
--将一个查询语句的结果看做一个集合(集合)
--如果将查询结果看成集合,那么这个查询结果必须确保一列(即这一列值当做一个集合)
--查询存在员工的部门信息
select * from dept where deptno in (select distinct deptno from emp)
--emp表中的deptno信息
select distinct deptno from emp--我们可以将一个查询结果看出一个集合
--查询不存在员工的部门信息
select * from dept where deptno not in(select distinct deptno from emp)