MySQL子查询练习:查询平均工资及低于平均工资的员工

需积分: 0 0 下载量 11 浏览量 更新于2024-08-04 收藏 203KB DOCX 举报
"这是关于数据库查询和SQL语言的学习资料,特别是涉及多表查询和子查询的实践练习。题目来自传智播客的黑马程序员课程,包括创建部门和员工表,以及进行相关查询操作的示例。" 在SQL中,查询是数据库操作的核心部分,用于从表中提取数据。在这个特定的作业中,我们有两个主要的知识点: 1. **查询平均工资**: 在SQL中,`AVG()` 函数用于计算某一列的平均值。在提供的描述中,`SELECT AVG(salary) FROM employee` 是用来获取`employee`表中所有员工的平均工资。这有助于我们了解员工的整体薪资水平。 2. **查询小于平均工资的员工**: 一旦我们有了平均工资,我们可以进一步筛选出工资低于这个平均值的员工。描述中的`SELECT * FROM employee`语句可以扩展为: ``` SELECT * FROM employee WHERE salary < (SELECT AVG(salary) FROM employee) ``` 这个查询将返回`employee`表中所有工资低于平均工资的员工记录。`*`表示选择所有列,`WHERE`子句是过滤条件,而嵌套的`SELECT AVG(salary) FROM employee`子查询用于获取平均工资。 此外,题目还提供了一些额外的查询操作示例,如: 3. **查询工资最高的员工**: 使用`MAX()`函数可以找到最高工资。完整的查询语句可能是: ``` SELECT * FROM employee WHERE salary = (SELECT MAX(salary) FROM employee) ``` 这将返回工资最高的员工的所有信息。 4. **查询工资大于500的员工**: 可以通过以下方式查询工资高于500的员工: ``` SELECT * FROM employee WHERE salary > 500 ``` 这些查询展示了如何结合使用SQL的基本函数(如`AVG()`, `MAX()`)和比较运算符来满足不同的查询需求。同时,通过`FOREIGN KEY`定义的外键关联了`employee`和`dept`表,展示了数据库中表之间的关系,这是数据库设计中的重要概念,特别是在进行多表查询时。 在实际应用中,理解并熟练掌握这些查询技巧对于数据分析、业务报表生成以及数据库管理至关重要。通过这样的练习,学习者能够提升SQL技能,更好地处理复杂的数据查询需求。