介绍
在本项目中,你将学习如何使用标准的 MySQL 函数从人事数据库的emp表中检索信息。你将练习访问 MySQL、导入数据以及编写 SQL 脚本来执行各种数据操作任务。
👀 预览
MariaDB [personnel]> SOURCE /home/labex/project/BasicFunctions.sql;
+--------+--------+-------------+
| 姓名 | 薪资 | 在职天数 |
+--------+--------+-------------+
| HTIMS | 26.67 | 14990 |
| NELLA | 53.33 | 14925 |
| DRAW | 41.67 | 14923 |
| SENOJ | 99.17 | 14884 |
| NITRAM | 41.67 | 14705 |
| EKALB | 95.00 | 14855 |
| KRALC | 81.67 | 14816 |
| TTOCS | 100.00 | 12621 |
| GNIK | 166.67 | 14655 |
| RENRUT | 50.00 | 14725 |
| SMADA | 36.67 | 12621 |
| SEMAJ | 31.67 | 14639 |
| DROF | 100.00 | 14639 |
| RELLIM | 43.33 | 14588 |
+--------+--------+-------------+
14 rows in set (0.000 sec)
🎯 任务
在本项目中,你将学习:
- 如何使用
sudo命令无密码访问 MySQL - 如何将 SQL 文件中的数据导入 MySQL 数据库
- 如何编写 SQL 脚本来检索
emp表中每位员工的姓名、日薪和在职天数 - 如何使用
REVERSE()、ROUND()和DATEDIFF()等 MySQL 函数来操作数据
🏆 成果
完成本项目后,你将能够:
- 使用命令行高效地访问和管理 MySQL 数据库
- 利用标准的 MySQL 函数执行复杂的数据检索和操作任务
- 开发 SQL 脚本来自动化数据处理和报告
- 展示你对 MySQL 基础知识及其实际应用的理解
访问 MySQL 并导入数据
在本步骤中,你将学习如何使用sudo命令无密码访问 MySQL,并将/home/labex/project/personnel.sql文件中的数据导入到personnel数据库中。
- 启动 MySQL 服务:
sudo service mysql start
- 使用
sudo命令访问 MySQL:
sudo mysql
- 将
/home/labex/project/personnel.sql文件中的数据导入到personnel数据库:
MariaDB [(none)]> SOURCE /home/labex/project/personnel.sql;
现在你已成功访问 MySQL 并将数据导入到personnel数据库中。
编写 SQL 脚本
在本步骤中,你将编写 SQL 脚本来检索emp表中每位员工的姓名、日薪和在职天数。
- 打开
BasicFunctions.sql文件。 - 将以下 SQL 代码添加到
BasicFunctions.sql文件中:
SELECT REVERSE(ename) AS `Name`,
ROUND(sal/30, 2) AS `Salary`,
DATEDIFF('2022-01-01', hiredate) AS `Days on Job`
FROM emp;
这段 SQL 代码将:
- 检索
emp表中每位员工的姓名、日薪和在职天数。 - 以相反的顺序显示姓名。
- 通过假设每月 30 天并四舍五入到两位小数来计算日薪。
- 通过计算入职日期与 2022 年 1 月 1 日之间的差值来计算在职天数。
- 保存
BasicFunctions.sql文件。
运行 SQL 脚本
在本步骤中,你将运行在上一步中创建的 SQL 脚本。
- 在 MySQL 提示符下,运行以下命令来执行
BasicFunctions.sql脚本:
MariaDB [personnel]> SOURCE /home/labex/project/BasicFunctions.sql;
这将执行 SQL 脚本并在 MySQL 提示符中显示结果。
输出应类似于以下内容:
+--------+--------+-------------+
| 姓名 | 薪资 | 在职天数 |
+--------+--------+-------------+
| HTIMS | 26.67 | 14990 |
| NELLA | 53.33 | 14925 |
| DRAW | 41.67 | 14923 |
| SENOJ | 99.17 | 14884 |
| NITRAM | 41.67 | 14705 |
| EKALB | 95.00 | 14855 |
| KRALC | 81.67 | 14816 |
| TTOCS | 100.00 | 12621 |
| GNIK | 166.67 | 14655 |
| RENRUT | 50.00 | 14725 |
| SMADA | 36.67 | 12621 |
| SEMAJ | 31.67 | 14639 |
| DROF | 100.00 | 14639 |
| RELLIM | 43.33 | 14588 |
+--------+--------+-------------+
14 rows in set (0.000 sec)
恭喜!你已通过编写和运行 SQL 脚本来从personnel数据库的emp表中检索信息,成功完成了该项目。
总结
恭喜!你已完成本项目。你可以在 LabEx 中练习更多实验以提升技能。



