子查询
一.含义
嵌套在其他语句内部的select语句被成为子查询或者内查询
外面的语句可以是insert,update,delete,select等,一般select作为外面语句较多
外面如果为select语句,则此语句称为外查询或主查询
二.分类
1.按出现位置
select后面
仅支持标量子查询
from后面
标量子查询
列子查询
行子查询
where或having后面
标量子查询
列子查询
行子查询
exists后面
标量子查询
列子查询
行子查询
表子查询
2.按结果集
标量子查询(单行子查询):结果集为一行一列
列子查询(多行子查询):结果集为多行一列
行子查询:结果集为一行多列或多行多列.
表子查询:结果集为多行多列
三.示例
where 或 having后面
1.标量子查询
案例:查询最低工资的员工姓名和工资
<1.最低工资
select min(salary) from employees;
<2最低工资的员工姓名和工资,要求工资=<1
select last_name,salary from employees where salary=(
select min(salary) from employees
);
2.列子查询
案例:查询所有是领导的员工姓名
<1查询所有员工的manager_id
select manager_id
from employees;
<2查询姓名,employee_id属于1列表中的一个
select last_name from employee where employee_id in (select manager_id
from employees);
分页查询
一.应用场景
当要查询的条目数太多,一页显示不全
二.语法
select 查询列表
from表
limit [offset,]size;
注意:offset代表的是起始条目索引,从0开始,不写默认为0.
size代表的是显示的条目数
公式:
假如要显示的页数为page,每一页条目数为size
select 查询列表
from 表
limit (page-1)*size,size;