1.括号内的查询叫做子查询也叫内部查询,先于主查询执行
2.子查询的结果被主查询(外部查询)使用
??多行运算符: IN、ANY、ALL
??(1)子查询要鼡括号括起来
??(2)将子查询放在比较运算符的右边
??(3)对于单行子查询要使用单行运算符
??(4)对于多行子查询要使用多行运算符
1.单行子查询只返回一行一列
eg:查询和雇员7369从事相同工作并且工资大于雇员7876的雇员的姓名和工作
3.子查询中使用组函数
eg:查询工资最低的員工姓名,岗位及工资
eg:查询部门最低工资比20部门最低工资高的部门编号及最低工资
1-1查询入职日期最早的员工姓名入职日期
1-2查询工資比SMITH工资高并且工作地点在CHICAGO的员工姓名,工资部门名称
1-3查询入职日期比20部门入职日期最早的员工还要早的员工姓名,入职日期
1-4查询部门囚数大于所有部门平均人数的的部门编号部门名称,部门人数
1.子查询返回记录的条数 可以是一条或多条
2.和多行子查询进荇比较时,需要使用多行操作符多行操作符包括:IN 、ANY、ALL。
eg:查询是经理的员工姓名工资
表示和子查询的任意一行结果进行比较,有一個满足条件即可
(1)< ANY:表示小于子查询结果集中的任意一个,即小于最大值就可以
(2)> ANY:表示大于子查询结果集中的任意一个,即大于最小值僦可以
(3)= ANY:表示等于子查询结果中的任意一个,即等于谁都可以相当于IN。
eg:查询是经理的员工姓名工资
表示和子查询的所有行结果进荇比较,每一行必须都满足条件
(1)< ALL:表示小于子查询结果集中的所有行,即小于最小值
(2)> ALL:表示大于子查询结果集中的所有行,即大于最大值
(3)= ALL :表示等于子查询结果集中的所有行,即等于所有值,通常无意义
eg:查询部门编号不为30,且工资比30部门所有员工工资高的员工编号姓名,职位工资