根据提供的文件信息,我们可以归纳出一系列SQL练习题及其解析,主要围绕着员工(EMP)表进行数据查询与分析。下面将详细解释每一道题目及其所涉及的知识点。 ### 题目一:获取每个部门最高薪资的员工 **题目描述**: 通过查询找到每个部门中薪资最高的员工。 **SQL语句**: ```sql mysql> select deptno, max(sal) as maxsal from emp group by deptno; ``` **解析**: - `select deptno, max(sal) as maxsal`: 选择`deptno`列,并计算每个部门中`sal`的最大值。 - `group by deptno`: 按照`deptno`分组,即按照部门进行分组。 - **知识点**: - `MAX()`: SQL中的聚合函数之一,用于找出某列的最大值。 - `GROUP BY`: SQL命令,用于结合具有相同数据行的SQL语句结果集。 ### 题目二:查询每个部门薪资最高的员工 **题目描述**: 在已知每个部门最高薪资的基础上,进一步查询具体是哪些员工达到了这个最高薪资。 **SQL语句**: ```sql 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; ``` **解析**: - `select deptno, max(sal) as maxsal from emp group by deptno`: 这部分与第一题相同,用于找出每个部门的最大薪资。 - `join`: 使用内连接(INNER JOIN)将主表`emp`与子查询结果进行连接。 - `on t.deptno = e.deptno and t.maxsal = e.sal`: 连接条件,确保匹配的是每个部门薪资最高的记录。 - **知识点**: - 内连接(INNER JOIN): SQL中的一种连接方式,只返回两个表中满足连接条件的记录。 - 子查询(Subquery): SQL语句中包含的另一个完整的SELECT语句。 ### 题目三:获取每个部门平均薪资及高于平均薪资的员工 **题目描述**: 首先计算每个部门的平均薪资,然后找出那些薪资高于本部门平均薪资的员工。 **SQL语句**: ```sql select t.*, e.ename, e.sal from emp e join (select deptno, avg(sal) as avgsal from emp group by deptno) t on e.deptno = t.deptno and e.sal > t.avgsal; ``` **解析**: - `select deptno, avg(sal) as avgsal from emp group by deptno`: 计算每个部门的平均薪资。 - `join`: 使用内连接将主表`emp`与子查询结果进行连接。 - `on e.deptno = t.deptno and e.sal > t.avgsal`: 连接条件,确保只返回那些薪资高于本部门平均薪资的员工记录。 - **知识点**: - `AVG()`: SQL中的聚合函数之一,用于计算某列的平均值。 - 多表连接时使用逻辑运算符(如`AND`、`OR`等)来确定连接条件。 ### 题目四:查询员工的工资等级 **题目描述**: 根据员工的薪资范围确定其工资等级。 **SQL语句**: ```sql select e.ename, e.sal, e.deptno, s.grade from emp e join salgrades s on e.sal between s.losal and s.hisal; ``` **解析**: - `join`: 使用内连接将`emp`表与`salgrades`表进行连接。 - `on e.sal between s.losal and s.hisal`: 连接条件,确定员工薪资落在哪个工资等级范围内。 - **知识点**: - 范围查询(BETWEEN): SQL中用于指定某个字段值位于指定的两个值之间。 - 外键关联: 在多表查询中,通常会涉及到外键关联的概念,即通过一个表中的列与另一个表中的列相匹配来实现连接。 以上四个题目涵盖了SQL查询的基础知识,包括聚合函数(`MAX()`、`AVG()`)、子查询、表连接(JOIN)以及范围查询(BETWEEN)。这些知识点是进行复杂数据处理和分析的基础,对于理解和应用SQL语言非常重要。
- 粉丝: 4w+
- 资源: 29
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助