Mysql练习题:Part 3

本文通过十个实例深入解析MySQL中的高级查询操作,包括筛选最低薪资、部门详情、薪资对比、相同工作查询等,旨在提升数据库查询能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、列出最低薪金大于 1500 的各种工作及从事此工作的全部雇员人数

二、列出在部门"SALES"工作的员工的姓名,假定不知道销售部的部门编号

三、列出薪资高于公司平均薪资的所有员工,所在部门,上级领导,雇员的工资等级

四、列出与"SCOTT"从事相同工作的所有员工及部门名称

五、列出薪金等于部门 30 中员工的薪金的其他员工的姓名和薪金

六、列出薪金高于在部门 30 工作的所有员工的薪金的员工姓名和薪金,部门名称

七、列出在每个部门工作的员工数量,平均工资和平均服务期限

八、列出所有员工的姓名、部门名称和工资

九、列出所有部门的详细信息和人数 

十、列出各种工作的最低工资及从事此工作的雇员姓名


一、列出最低薪金大于 1500 的各种工作及从事此工作的全部雇员人数

查找最低薪资大于1500的工作,再对过滤出来的这些job计数

二、列出在部门"SALES"工作的员工的姓名,假定不知道销售部的部门编号

第一步:由于不知道部门编号,所以通过dname去查编号

第二步:通过编号去查姓名

三、列出薪资高于公司平均薪资的所有员工,所在部门,上级领导,雇员的工资等级

select  

e.ename,d.dname,l.mgr,s.grade 

from emp e 

join dept d 

on e.deptno=d.deptno 

left join  (select empno,mgr from emp) l

e.mgr=l.empno 

join salgrade s 

on e.sal between s.losal and s.hisal

where sal > (select avg(sal) from emp);

四、列出与"SCOTT"从事相同工作的所有员工及部门名称

 第一步:查找scott的工作

select job from emp where ename='scott';

第二步:将d表和e表连接查找ename和dname,连接条件为deptno相同,最后过滤条件为job=(scott的工作)and 名字不等于scott

五、列出薪金等于部门 30 中员工的薪金的其他员工的姓名和薪金

第一步:找出deptno为30的员工们的薪资

 第二步:找出其他员工的姓名和薪资,条件为薪资 in(deptno为30的薪资)

 没有

六、列出薪金高于在部门 30 工作的所有员工的薪金的员工姓名和薪金,部门名称

第一步:查询出30部门的最大薪资

第二步:select ename,sal,dname 两表连接 where sal>(30部门最大薪资);

七、列出在每个部门工作的员工数量,平均工资和平均服务期限

平均服务期限:服务期限的平均值:avg(现在时间-入职时间)=avg(timesstampdiff(YEAR,hiredate,now()))

八、列出所有员工的姓名、部门名称和工资

九、列出所有部门的详细信息和人数 

d表和e表连接,将d表作为主表

十、列出各种工作的最低工资及从事此工作的雇员姓名

思路同Part 1 第一题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值