介绍
在本项目中,你将学习如何使用 MySQL 的常见转换函数从 personnel 数据库的 emp 表中提取相关信息。你将学习如何访问 MySQL、导入数据以及编写脚本来对数据执行各种日期和时间转换。
👀 预览
MariaDB [personnel]> SOURCE /home/labex/project/ConversionFunctions.sql;
+------------+------------+
| 入职日期 | 新日期 |
+------------+------------+
| 80-12 | 1980-12-31 |
| 81-02 | NULL |
| 81-02 | NULL |
| 81-04 | 1981-04-16 |
| 81-09 | NULL |
| 81-05 | 1981-05-15 |
| 81-06 | 1981-06-23 |
| 87-06 | 1987-06-27 |
| 81-11 | 1981-11-31 |
| 81-09 | 1981-09-22 |
| 87-06 | 1987-06-27 |
| 81-12 | 1981-12-17 |
| 81-12 | 1981-12-17 |
| 82-01 | NULL |
+------------+------------+
14 行已设置,4 个警告 (0.000 秒)
🎯 任务
在本项目中,你将学习:
- 如何使用
sudo命令无密码访问 MySQL - 如何将 SQL 文件中的数据导入 MySQL 数据库
- 如何编写 SQL 脚本来使用
DATE_FORMAT()和STR_TO_DATE()等函数执行日期和时间转换 - 如何使用适当的别名显示转换函数的结果
🏆 成果
完成本项目后,你将能够:
- 理解如何使用 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;
编写转换函数脚本
在本步骤中,你将学习如何编写 ConversionFunctions.sql 脚本,以便使用 MySQL 的常见转换函数从 personnel 数据库的 emp 表中提取相关信息。
- 打开
ConversionFunctions.sql文件。 - 将以下 SQL 查询添加到
ConversionFunctions.sql文件中:
SELECT DATE_FORMAT(hiredate, '%y-%m') AS `入职日期`,
DATE_FORMAT(STR_TO_DATE(CONCAT(DATE_FORMAT(hiredate, '%Y%m%d') + 14), '%Y%m%d'), '%Y-%m-%d') AS `新日期`
FROM emp;
此查询执行以下任务:
- 提取
emp表中所有员工的入职日期和修订日期。 - 以
yy-MM格式显示入职日期。 - 将入职日期加上 14 天,使用
STR_TO_DATE()函数将其转换为日期格式,并以yyyy-MM-dd格式显示。 - 使用别名
入职日期和新日期来显示结果。
- 保存
ConversionFunctions.sql文件。
运行转换函数脚本
在本步骤中,你将学习如何在 MySQL 中运行 ConversionFunctions.sql 脚本。
- 在 MySQL 提示符下,运行以下命令来执行
ConversionFunctions.sql脚本:
MariaDB [personnel]> SOURCE /home/labex/project/ConversionFunctions.sql;
这将执行 ConversionFunctions.sql 文件中的 SQL 查询并显示结果。
输出应类似于以下内容:
+------------+------------+
| 入职日期 | 新日期 |
+------------+------------+
| 80-12 | 1980-12-31 |
| 81-02 | NULL |
| 81-02 | NULL |
| 81-04 | 1981-04-16 |
| 81-09 | NULL |
| 81-05 | 1981-05-15 |
| 81-06 | 1981-06-23 |
| 87-06 | 1987-06-27 |
| 81-11 | 1981-11-31 |
| 81-09 | 1981-09-22 |
| 87-06 | 1987-06-27 |
| 81-12 | 1981-12-17 |
| 81-12 | 1981-12-17 |
| 82-01 | NULL |
+------------+------------+
14 行已设置,4 个警告 (0.000 秒)
此输出显示了 emp 表中所有员工的入职日期和修订日期,入职日期格式为 yy-MM,修订日期格式为 yyyy-MM-dd。
总结
恭喜!你已完成本项目。你可以在 LabEx 中练习更多实验以提升技能。



