频道栏目
首页 > 资讯 > SQL Server > 正文

sql语句练习题和答案

18-04-11        来源:[db:作者]  
收藏   我要投稿

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

相关TAG标签
上一篇:黑客攻击导致了印度国防部网站被黑 印官方否认
下一篇:一文读懂CPU漏洞“裂谷”TotalMeltdown
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站