子查询

#子查询

概念:

嵌套在另一个查询中的查询语句称为子查询,外部的查询称为主查询,类似于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;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。