介绍
在本项目中,你将学习如何使用 MySQL 的内置函数从人事数据库的员工表(emp)中检索相关信息。你将练习编写 SQL 查询,以访问和操作关系数据库中的数据。
👀 预览
MariaDB [personnel]> SOURCE /home/labex/project/multiple_line_function.sql;
+---------------+------------+------------+-------------+
| department_id | max_salary | min_salary | avg_salary |
+---------------+------------+------------+-------------+
| 20 | 3000.00 | 800.00 | 2175.000000 |
| 10 | 5000.00 | 1300.00 | 2916.666667 |
+---------------+------------+------------+-------------+
2 rows in set (0.001 sec)
🎯 任务
在本项目中,你将学习:
- 如何使用
sudo命令无密码访问 MySQL - 如何将 SQL 文件中的数据导入 MySQL 数据库
- 如何编写 SQL 查询,以检索平均工资为 2000 或更高的部门的部门编号、最高工资、最低工资和平均工资,并按部门编号降序排序结果
🏆 成果
完成本项目后,你将能够:
- 理解如何使用 MySQL 的内置函数执行复杂的数据分析
- 编写 SQL 查询以从关系数据库中检索和操作数据
- 应用你的 SQL 知识解决实际的数据管理问题
访问 MySQL 并导入数据
在本步骤中,你将学习如何使用 sudo 命令无密码访问 MySQL,并将 /home/labex/project/personnel.sql 中的数据导入 MySQL。
- 启动 MySQL 服务:
sudo service mysql start
- 使用
sudo命令访问 MySQL:
sudo mysql
- 将
/home/labex/project/personnel.sql中的数据导入 MySQL 并切换到personnel数据库:
MariaDB [(none)]> SOURCE /home/labex/project/personnel.sql;
编写 SQL 查询
在本步骤中,你将学习如何编写 SQL 查询,以便从 personnel 数据库的 emp 表中检索相关信息。
- 打开
multiple_line_function.sql文件。 - 将以下 SQL 查询添加到该文件中:
SELECT deptno AS 'department_id', MAX(sal) AS'max_salary', MIN(sal) AS'min_salary', AVG(sal) AS 'avg_salary'
FROM emp
GROUP BY deptno
HAVING AVG(sal) >= 2000
ORDER BY deptno DESC;
此查询将检索平均工资为 2000 或更高的部门的部门编号、最高工资、最低工资和平均工资,并按部门编号降序对结果进行排序。
运行 SQL 查询
在本步骤中,你将学习如何运行你在前面步骤中编写的 SQL 查询。
- 打开 MySQL 提示符:
MariaDB [personnel]> SOURCE /home/labex/project/multiple_line_function.sql;
这将执行 SQL 查询并在 MySQL 提示符中显示结果。
输出应类似于以下内容:
+---------------+------------+------------+-------------+
| department_id | max_salary | min_salary | avg_salary |
+---------------+------------+------------+-------------+
| 20 | 3000.00 | 800.00 | 2175.000000 |
| 10 | 5000.00 | 1300.00 | 2916.666667 |
+---------------+------------+------------+-------------+
2 rows in set (0.001 sec)
恭喜!你已成功完成该项目。
总结
恭喜!你已完成本项目。你可以在 LabEx 中练习更多实验来提升你的技能。
