多表查询前面讲过的基本查询都是对一张表进行查询,但在实际的开发中远远不够 。
下面使用表emp,dept , salgrade进行多表查询
emp:
文章插图
dept:
文章插图
salgrade:
文章插图
1.前置-mysql表查询-加强1.1查询增强
- 使用where子句
如何查找1992.1.1后入职的员工
在mysql中,日期类型可以直接比较,需要注意格式
- 如何使用like操作符
%表示0到多个任意字符_表示单个任意字符
如何显示首字符为S的员工姓名和工资
如何显示第三个字符为大写O的所有员工的姓名和工资
- 如何显示没有上级的雇员的情况
- 查询表结构
- 使用order by子句
如何按照工资的从低到高的顺序,显示雇员的信息
按照部门号升序而雇员的工资降序排列,显示雇员的信息
练习
SELECT * FROM emp;SELECT * FROM dept;SELECT * FROM salgrade;-- - 使用where子句-- 在mysql中,日期类型可以直接比较--如何查找1992.1.1后入职的员工 SELECT * FROM emp WHERE hiredate > '1992-01-01';
文章插图
-- - 如何使用like操作符--%表示0到多个字符_表示单个字符--如何显示首字符为S的员工姓名和工资 SELECT ename,sal FROM emp WHERE ename LIKE 'S%';--如何显示第三个字符为大写O的所有员工的姓名和工资 SELECT ename,sal FROM emp WHERE ename LIKE '__O%';
文章插图
文章插图
-- - 如何显示没有上级的雇员的情况 SELECT * FROM emp WHERE mgr IS NULL;-- - 查询表结构DESC emp;
文章插图
文章插图
-- 使用order by子句-- 如何按照工资的从低到高的顺序,显示雇员的信息 SELECT * FROM emp ORDER BY sal ASC;-- 按照部门号升序而雇员的工资降序排列 , 显示雇员的信息 SELECT * FROM emp ORDER BY deptno ASC,sal DESC;
文章插图
文章插图
1.2分页查询
- 按照雇员的id号升序取出,每页显示3条记录,请分别显示第一页,第二页,第三页
- 基本语法
select ... limit start,rows
表示从start+1行开始取 , 取出rows行 , start从0开始计算
练习
-- 按照雇员的id号升序取出 , 每页显示3条记录 , 请分别显示第一页,第二页,第三页SELECT * FROM emp ORDER BY empno LIMIT 0,3SELECT * FROM emp ORDER BY empno LIMIT 3,3SELECT * FROM emp ORDER BY empno LIMIT 6,3
公式:SELECT * FROM emp ORDER BY empno LIMIT 每页显示记录数*(第几页-1),每页显示记录数
1.3分组函数和分组子句加强- 使用分组函数和分组子句group by
- 显示每种岗位的雇员总数,平均工资
- 显示雇员总数以及获得补助的雇员数
- 显示管理者的总人数
- 显示雇员工资的最大差额
# 使用分组函数和分组子句groupby-- 1. 显示每种岗位的雇员总数,平均工资SELECT COUNT(*),AVG(sal),job FROM emp GROUP BY job;-- 2. 显示雇员总数以及获得补助的雇员数-- 思路:COUNT(列)如果该列的值为空,是不会统计进去的SELECT COUNT(*),COUNT(comm) FROM emp -- 扩展:统计没有获得补助的雇员数SELECT COUNT(*),COUNT(IF(comm IS NULL,1,NULL)) FROM emp-- 或者SELECT COUNT(*),COUNT(*)-COUNT(comm) FROM emp-- 3. 显示管理者的总人数SELECT COUNT(DISTINCT mgr) FROM emp;-- 4. 显示雇员工资的最大差额SELECT MAX(sal)-MIN(sal) FROM emp;
- 数据分组的总结
那么他们的顺序应该为 group by,having , order by,limit
应用案例请统计每个部门的平均工资,并且是大于1000的,并且按照平均工资从高到低排序,取出前两行记录
推荐阅读
- 中国专利号查询 中国专利号查询网入口
- 基于 Apache Hudi 极致查询优化的探索实践
- flutter系列之:查询设备信息的利器:MediaQuery
- 别人发的微信怎么发朋友圈(朋友圈访客痕迹查询)
- 王者kda在哪里查询
- 车子被堵了怎么查询车主手机号 车子被堵打什么号码移车
- 上海健康证网址怎么查询 上海健康证网址怎么查
- 铂金多少钱一克价格查询 铂金为什么价格越来越不值钱
- 2013年广东高考成绩查询的网址和电话分别是什么?
- 个人所得税怎么查询工资明细 怎么样查询工资明细