一、含义
 嵌套在其他语句内部的select语句称为子查询或内查询,
 外面的语句可以是insert、update、delete、select等,一般select作为外面语句较多
 外面如果为select语句,则此语句称为外查询或主查询
二、分类
 1、按出现位置
 select后面:
         仅仅支持标量子查询
 from后面:
         表子查询
where或having后面:
         标量子查询
         列子查询
         行子查询
 exists后面:
         标量子查询
         列子查询
         行子查询
         表子查询
2、按结果集的行列
标量子查询(单行子查询):结果集为一行一列
 列子查询(多行子查询):结果集为多行一列
 行子查询:结果集为多行多列
 表子查询:结果集为多行多列
 三、示例
 where或having后面
 1、标量子查询
 案例:查询最低工资的员工姓名和工资
 ①最低工资
 select min(salary) from employees
②查询员工的姓名和工资,要求工资=①
 select last_name,salary
 from employees
 where salary=(
     select min(salary) from employees
 );
2、列子查询
 案例:查询所有是领导的员工姓名
 ①查询所有员工的 manager_id
 select manager_id
 from employees
②查询姓名,employee_id属于①列表的一个
 select last_name
 from employees
 where employee_id in(
     select manager_id
     from employees
 );

京公网安备 11010502036488号