首页 > 图灵资讯 > 技术篇>正文

6道经典SQL试题(附答案)

2023-04-14 09:52:06

SQL它是结构化查询语言的缩写,是编程语言的特殊目的,是一种数据库语言的查询和程序设计SQL语句分类简单查询SQL语句基本概念已经在前面学习过了。为了测试学习效果,整理了这篇文章6经典SQL试题,可以进行自测。

1、获得各部门最高工资的人员名称

思路分析:第一步:获得各部门最高工资,按部门分组寻求最大值

第二步:将上述查询结果作为临时结果 t 与 emp e 表连接,连接条件

t.deptno = e.deptno and t.maxsal = e.sal

答案:

select

e.ename,t.*

from

emp e

join

(select deptno,max(sal) as maxsal from emp group by

deptno) t

on

t.deptno = e.deptno and t.maxsal = e.sal;

2、谁的工资高于部门的平均工资?

思路分析:第一步:求部门平均工资,按部门分组求平均工资

将上述查询结果作为临时表 t 与 emp e 连接条件:

e.deptno = t.deptno and e.sal > t.avgsal ;

答案:

select

e.ename,t.*

from

join

(select deptno,avg(sal) as avgsal from emp e group by

deptno) t

on

t.avgsal between s.losal and s.hisal;

4、不允许使用组函数(MAX),获得最高工资(给出两个解决方案)

第一种方案:按工资降序排列,取第一个

自连接

select sal from emp; 看做

 

select sal from emp; 看做

以上两个查询结果分别视为两个查询结果a表和b表,表连接条件:a.sal < b.sal,其中一个值不小于任何值,该值为最大值;

使用distinct将上述结果去重,并查询NOT结果 在上述查询结果中,IN不是最大值

 

答案:

select

sal

from

emp

where

sal not in(select distinct a.sal from emp a join emp b on

a.sal < b.sal);

5、平均工资最高的部门编号(至少两个方案)

第一种方案:思维分析

每个部门的平均工资

部门平均工资的最大值

将上述第一步和第二步结果结合起来:结果1值等于结果2值

答案:

select

deptno,avg(sal)

from

emp

group by

deptno

having

avg(sal) = (select avg(sal) as avgsal from emp group

by deptno order by avgsal desc limit 1);

第二种方案:思维分析:使用Max函数

每个部门的平均工资

使用部门平均工资的最大值Max函数

SELECT MAX(T.AVGSAL)

FROM ( SELECT DEPTNO ,AVG(SAL) AVGSAL

FROM EMP GROUP BY DEPTNO) T;

将上述第一步和第二步结果结合起来:结果1值等于结果2值

答案:

select

deptno,avg(sal) as avgsal

from

emp

group by

deptno

having

avg(sal) = (select max(t.avgsal) from (select avg(sal) as

avgsal from emp group by deptno) t);

6、平均工资最高的部门的部门名称

思路分析一:第一步:求部门平均工资,按部门编号分组

第二步:求部门平均最高工资

第三步:将第一步和第二步结合起来,寻求平均工资最高的部门编号,条件:结果 平均工资等于结果2的最大值

第四步:将上述查询结果作为临时表 t 以及部门信息表 dept d 连接条件:t.deptno = d.deptno

思路分析二:员工表与部门表连接,按部门名称分组

存取数据、查询、更新和管理关系数据库系统

以上列举6道经典SQL试题细细研究,相信通过这6道SQL试题你可以自我测量你的学习效果。如果你能自己操作这些问题,那么恭喜能学到更多java培训课程进入下一阶段的学习,如果有问题,那么比较答案和参考资料来弥补知识点的不足。我希望每个人都能掌握它SQL语句相关操作技能。

 

 

上一篇 MySQL索引基础知识概述
下一篇 SQL语句limit用法介绍

文章素材均来源于网络,如有侵权,请联系管理员删除。