MySQL进阶8 分页查询(limit) - 【SQL查询语法执行顺序及大致结构】- 子查询的3个经典案例
#进阶8 分页查询
/* 应用场景: 当要显示的数据,一页显示不全,需要分页提交sql请求
语法:
select 查询列表 #7
from 表1 #执行顺序:#1
【join type join 表2 #2
on 连接条件 #3
where 筛选条件 #4
group by 分组字段 #5
having 分组后筛选或函数 #6
order by 排序的字段 #8
】
limit offset, size ; #9
#offset 要显示条目的起始索引(从0开始,0想可以省略),size 要显示的条目个数
特点:
①limit语句放在查询语句的,执行上语法上都在最后
②公式, 要显示的页数page ,每页的条目数 size
select 查询列表
from 表
limit(page-1)*size ,size;
*/
#案例1: 查询前五条员工信息
SELECT * FROM employees LIMIT 0,5;
SELECT * FROM employees LIMIT 5; #案例2:查询第11到第25条
SELECT * FROM employees LIMIT 11,15; # 案例3:有奖金的员工信息,并且工资较高的前10项显示出来
SELECT *
FROM employees
WHERE commission_pct IS NOT NULL
ORDER BY salary DESC
LIMIT 10;
#--------------------------
#课堂练习
#1.查询所有学员的邮箱的用户名(注: 邮箱中 @前的字符) ;instr() : 返回子串的索引下标
SELECT SUBSTR( email,1,INSTR(email,'@')-1)
FROM stuinfo;
#------------------------------------
#子查询的经典案例 #1:查询工资最低的员工信息: last_name,salary
SELECT last_name,salary
FROM employees
WHERE salary=(
SELECT MIN(salary)
FROM employees
);
#2:查询平均工资最低的部门信息
#方式1:
#分组查询平均工资
#查询最低的一组
#查询那个部门最低平均工资 = 最低的一组
SELECT AVG(salary) ag,department_id
FROM employees
GROUP BY department_id; SELECT MIN(ag)
FROM (
SELECT AVG(salary) ag,department_id
FROM employees
GROUP BY department_id
)ag_dep; SELECT *,AVG(salary)
FROM employees
GROUP BY department_id
HAVING AVG(salary) = (
SELECT MIN(ag)
FROM (
SELECT AVG(salary) ag,department_id
FROM employees
GROUP BY department_id
)ag_dep
);
#方式2:
#①分组查询平均工资
SELECT AVG(salary) ag,department_id
FROM employees
GROUP BY department_id;
#②求出最低的(limit=1)平均工资的部门编号
SELECT department_id
FROM employees
GROUP BY department_id
ORDER BY AVG(salary)
LIMIT 1;
#③ 进行嵌套,输出该部门信息
SELECT *
FROM departments
WHERE department_id =(
SELECT department_id
FROM employees
GROUP BY department_id
ORDER BY AVG(salary)
LIMIT 1
); #3: 查询平均工资高于公司的平均工资的部门有哪些 #①查询平均工资
SELECT AVG(salary)
FROM employees; #② 查询每个部门的
SELECT AVG(salary) ag,department_id
FROM employees
GROUP BY department_id; #③ 进行筛选2的结果集: > ① 即可! SELECT *,AVG(salary) ag,department_id
FROM employees
GROUP BY department_id
HAVING ag >(
SELECT AVG(salary)
FROM employees
);
MySQL进阶8 分页查询(limit) - 【SQL查询语法执行顺序及大致结构】- 子查询的3个经典案例的更多相关文章
- SQL Server调优系列基础篇(子查询运算总结)
前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴 ...
- 在 SQL Server 数据库的 WHERE 语句中使用子查询
这是关于子查询语句的一系列文章中的第三篇.在这篇文章中我们将讨论WHERE语句中的子查询语句.其他的文章讨论了其他语句中的子查询语句. 本次课程中的所有例子都是基于Microsoft SQL Serv ...
- mysql 中sql语句的执行顺序
今天突然想起来,之前面试一个很牛逼的公司(soho)的时候,一个美眉面试官,面试的时候问到了很多之前都没有意识到的问题,回想起来那美眉看着年纪不大,技术那是真666啊.好了说一下人家问的这个有关mys ...
- MySQL逻辑架构、SQL加载执行顺序、七种JOIN模式图解
逻辑架构 存储引擎 查看当前安装的mysql提供的存储引擎 查看当前mysql默认的存储引擎 MyISAM和InnoDB SQL加载执行顺序 sql书写顺序 mysql解析器执行的顺序 考点:m ...
- SQL的where执行顺序
SQL的where执行顺序 1 mysql 从左到右. 一个原则,排除越多的条件放到第一个 例子:抄的. SELECT … WHERE p.languages_id = 1 AND m.languag ...
- SQL语言逻辑执行顺序
SQL语言逻辑执行顺序 2012-12-18 16:18:13 分类: 数据库开发技术 查询的逻辑执行顺序 FROM < left_table> ON < join_conditio ...
- SQL语句的执行顺序和效率
今天上午在开发的过程中,突然遇到一个问题,需要了解SQL语句的执行顺序才能继续,上网上查了一下相关的资料,现整理如下:一.sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各 ...
- day57-mysql-五种约束和sql语句逻辑执行顺序
二.sql语句逻辑执行顺序 () SELECT () DISTINCT <select_list> 去重复 () FROM <left_table> () <join_t ...
- SQL语句的执行顺序
一.sql语句的执行顺序 (8)SELECT (9) DISTINCT (11) <TOP_specification> <select_list> (1) FROM < ...
随机推荐
- CF C.Ivan the Fool and the Probability Theory【思维·构造】
题目传送门 题目大意: 一个$n*m$的网格图,每个格子可以染黑色.白色,问每个格子最多有一个相邻格子颜色相同的涂色方案数$n,m<=1e5$ 分析: 首先,考虑到如果有两个相邻的格子颜色相同, ...
- leetcode903 Valid Permutations for DI Sequence
思路: dp[i][j]表示到第i + 1个位置为止,并且以剩下的所有数字中第j + 1小的数字为结尾所有的合法序列数. 实现: class Solution { public: int numPer ...
- oracle数据库数据转储最好方式(数据库表、数据结构和数据一并导出)
导入:使用plsql:Tools --> Import Tables --> SQL Inserts 得到的为sql文件,在转储的过程中当导入另一个库的时候老是报 “表或视图不存在” ...
- 解决ffmpeg执行报错“ffmpeg: error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory”的问题
问题现象: 执行ffmpeg命令后报错: ffmpeg: error : cannot open shared object file: No such file or directory 出问题的环 ...
- Asp.Net Core 自定义验证属性
很多时候,在模型上的验证需要自己定义一些特定于我们需求的验证属性.所以这一篇我们就来介绍一下怎么自定义验证属性. 我们来实现一个验证邮箱域名的自定义验证属性,当然,最重要的是需要定义一个继承自Vali ...
- 日常工作问题解决:centos7下使用yum安装软件报yum.pid锁定
问题描述: 在centos7下使用yum进行软件安装时报yum.pid已经被锁定,如下所示: [root@centos7-129 ~]# yum -y install dhcp 已加载插件:faste ...
- Linux软件安装管理---源码安装
在Linux平台下,软件包的类型可以划分为两类:源码包.二进制包. 源码包: 即程序软件的源代码(一般也叫Tarball,即将软件的源码以tar打包后再压缩的资源包). 二进制包: 如 Red Hat ...
- Mongodb: com.mongodb.MongoSocketReadException: Prematurely reached end of stream
saveLocationInfo errorcom.mongodb.MongoSocketReadException: Prematurely reached end of stream at com ...
- 【C++札记】命名空间(namespace)
介绍 命名空间可以解决程序中的同名冲突,尤其大型项目多人开发中经常用到.比如我们使用C++的标准输出std::cout就使用了std命名空间. 使用作用域符:: #include <iostre ...
- WUSTOJ 1282: Start(Java)
1282: Start 题目 判断一个字符串是不是回文串.例如:"abcba"是回文串.更多内容点击标题. 分析 水题,自己思考. 代码 /** * time 838ms ...