2.7 DQL 子查询

一、含义

嵌套在其他语句内部的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
);
 

猜你喜欢

转载自www.cnblogs.com/huabro/p/12624212.html
今日推荐