sql语句练习

 部门表dept

 员工表emp

薪资等级表salgrade


1.查询雇员表中工资最高的雇员的员工号、员工姓名、工资和部门号。

SELECT empno,ename,sal,deptno from emp  WHERE sal in(select max(sal) FROM emp)
2.薪水>1200的雇员,按照部门编号进行分组,分组后的平均薪水必须大于1500,
查询各分组的平均工资,按照工资的倒序进行排列
SELECT avg(sal),deptno FROM emp where sal>'1200' GROUP BY deptno
HAVING avg(sal) >'1500' ORDER BY avg(sal) DESC
3.查询每个雇员和其所在的部门名
SELECT emp.ename,dept.dname from dept, emp where emp.deptno=dept.deptno
4.查询每个雇员姓名及其工资所在的等级
SELECT emp.ename,salgrade.grade from emp LEFT JOIN salgrade ON emp.sal BETWEEN salgrade.losal and salgrade.hisal
5.查询雇员名第2个字母不是a的雇员的姓名、所在的组名、工资所在的等级。三张表的连接查询
(先连接,再加上where语句进行过滤)
SELECT emp.ename, dept.dname, salgrade.grade from emp 
LEFT JOIN dept ON emp.deptno=dept.deptno
LEFT JOIN salgrade on emp.sal BETWEEN salgrade.losal and salgrade.hisal
WHERE emp.ename NOT LIKE '_a%' 
6.查询每个雇员的姓名及其所在部门的部门名(包括没有雇员的部门)
select ename,dname from emp e right join dept d on(e.deptno=d.deptno);
7.子查询1:查询每个部门中工资最高的人的姓名、薪水和部门编号
SELECT  a.ename, a.sal, a.deptno from emp a
LEFT JOIN (SELECT max(sal) sal,deptno from emp GROUP BY deptno) b 
ON a.sal =b.sal and a.deptno = b.deptno
8.子查询2:查询每个部门平均工资所在的等级
SELECT avg(sal) sal,deptno,salgrade.grade FROM emp
LEFT JOIN salgrade 
ON (emp.sal BETWEEN salgrade.losal and salgrade.hisal)

GROUP BY deptno

转载自:https://wenku.baidu.com/view/854f6a75d0d233d4b04e69dc.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值