子查询:
含义:出现在其他语句中的select语句,称为子查询或内查询。
外部的查询语句,成为主查询或外查询。
例如:
select first_name from employees where departmet_id in (select departmet_id from dept where department_id = 700 department_id = 1000 )
分类:
按子查询出现的位置:
1 select 后面
仅仅支持标量子查询
2、 from 后面
支持表子查询
3、 where或 having后面(重点)
标量子查询(单行)
列子查询 (多行)
行子查询
4、 exists后面(相关子查询)
表子查询
按结果集的行列数不同:
1 标量子查询(结构集只有一行一列)
2、列子查询(结果集只有一列多行)
3、 行子查询(结构集有一行多列)
4、 表子查询(结果集多行多列)
1、where或having 后面
1、标量子查询(单行子查询)
2、列子查询(多行子查询)
3、行子查询
特点:
- 子查询放在小括号的内
- 子查询一般放在条件的右侧
- 标量子查询,一般搭配着单行操作符使用 < > = >= <
列子查询,一般搭配着多行操作符使用
in any/some、all
#(1)标量子查询
select salary from employees where last_name = 'abc';
2、查询员工的信息,满足salary > (1)结果
select × from employees where salary > ( select salary from employess
where last_name = 'abc');