#子查询
概念:
嵌套在另一个查询中的查询语句称为子查询,外部的查询称为主查询,类似于java中的内部类
语法
select字段1,字段2
from表1
where Id in(
select字段1 from 表2
)
特点或者说注意事项:
1、子查询放在小括号内
2、放在条件右侧
3、子查询优先于主查询执行,先子再主
分类:
单行子查询:子查询的结果只有一个值,使用单行操作符(> < >= <= = <>)
多行子查询:使用多行操作符(any、all、in、not in)
多行子查询
#二、多行子查询
#案例1:返回location_id是1400或1700的部门中的所有员工姓名
#①查询location_id是1400或1700的部门编号
SELECT department_id FROM departments
WHERE location_id IN(1400,1700)
#②查询department_id满足①结果的员工姓名
SELECT last_name FROM employees
WHERE department_id IN(
SELECT department_id FROM departments
WHERE location_id IN(1400,1700)
)
#案例2:返回其它部门中比job_id为‘IT_PROG’部门任意工资低的员工的员
#工号、姓名、job_id 以及salary
#①查询job_id为‘IT_PROG’部门工资
SELECT salary
FROM employees
WHERE job_id = 'IT_PROG'
#②返回其它部门中,工资<any ①的结果
SELECT last_name,employee_id,job_id,salary
FROM employees
WHERE salary<(
SELECT MAX(salary)
FROM employees
WHERE job_id = 'IT_PROG'
)AND job_id<>'IT_PROG';
#题目:返回其它部门中比job_id为‘IT_PROG’部门所有工资都低的员工
#的员工号、姓名、job_id 以及salary
SELECT last_name,employee_id,job_id,salary
FROM employees
WHERE salary<ALL(
SELECT salary
FROM employees
WHERE job_id = 'IT_PROG'
)AND job_id<>'IT_PROG';
分页查询
#分页查询
#语法
#SELECT查询的东西
#FROM表
#【WHERE 条件】
#【GROUP BY 字段】
#【HAVING 条件】
#【ORDER BY 排序的字段】
# LIMIT条目起始索引【,条目数】
#特点
#1.写法
#写法一:
#LIMIT条目数
#意思:从第一条开始,显示指定条目数的数据
#写法二:
#LIMIT起始条目索引,条目数
#意思:从指定的起始索引的条目开始,显示指定条目数的数据
#2.起始索引从0开始
#案例1:查询员工表的中前五行
SELECT * FROM employees LIMIT 10;
#案例2:查询 员工表 的第11条到第20条
SELECT * FROM employees LIMIT 10,10;
#案例3:查询员工表的第15条到30条
SELECT * FROM employees LIMIT 14,16;