Введение
В этом проекте вы научитесь использовать общие функции преобразования MySQL для извлечения соответствующей информации из таблицы emp в базе данных personnel. Вы научитесь подключаться к MySQL, импортировать данные и писать сценарий для выполнения различных преобразований даты и времени в данных.
👀 Предварительный просмотр
MariaDB [personnel]> SOURCE /home/labex/project/ConversionFunctions.sql;
+------------+------------+
| Entry Date | New Date |
+------------+------------+
| 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 rows in set, 4 warnings (0.000 sec)
🎯 Задачи
В этом проекте вы научитесь:
- Как подключаться к MySQL с использованием команды
sudoбез пароля - Как импортировать данные из SQL-файла в базу данных MySQL
- Как написать SQL-скрипт для выполнения преобразований даты и времени с использованием функций, таких как
DATE_FORMAT()иSTR_TO_DATE() - Как отображать результаты функций преобразования с соответствующими псевдонимами
🏆 Достижения
После завершения этого проекта вы сможете:
- Разобраться, как использовать функции преобразования MySQL для манипулирования и отображения данных о дате и времени
- Писать SQL-скрипты для выполнения сложных преобразований данных
- Применить свои знания MySQL для решения реальных задач обработки данных
Подключиться к MySQL и импортировать данные
В этом шаге вы научитесь подключаться к MySQL с использованием команды sudo без пароля и импортировать данные из /home/labex/project/personnel.sql в базу данных personnel.
- Запустите службу MySQL:
sudo service mysql start
- Подключитесь к MySQL с использованием команды
sudoбез пароля:
sudo mysql
- Импортируйте данные из
/home/labex/project/personnel.sqlв базу данныхpersonnel:
MariaDB [(none)]> SOURCE /home/labex/project/personnel.sql;
Написать скрипт с функциями преобразования
В этом шаге вы научитесь писать скрипт ConversionFunctions.sql для извлечения соответствующей информации из таблицы emp в базе данных personnel с использованием общих функций преобразования MySQL.
- Откройте файл
ConversionFunctions.sql. - Добавьте следующий SQL-запрос в файл
ConversionFunctions.sql:
SELECT DATE_FORMAT(hiredate, '%y-%m') AS `Entry Date`,
DATE_FORMAT(STR_TO_DATE(CONCAT(DATE_FORMAT(hiredate, '%Y%m%d') + 14), '%Y%m%d'), '%Y-%m-%d') AS `New Date`
FROM emp;
Этот запрос выполняет следующие задачи:
- Извлекает дату приема на работу и дату изменения для всех сотрудников в таблице
emp. - Отображает дату приема на работу в формате
yy-MM. - Добавляет 14 дней к дате приема на работу, преобразует ее в формат даты с использованием функции
STR_TO_DATE()и отображает в форматеyyyy-MM-dd. - Использует псевдонимы
Entry DateиNew Dateдля отображения результатов.
- Сохраните файл
ConversionFunctions.sql.
Запустить скрипт с функциями преобразования
В этом шаге вы научитесь запускать скрипт ConversionFunctions.sql в MySQL.
- В提示符 MySQL выполните следующую команду для выполнения скрипта
ConversionFunctions.sql:
MariaDB [personnel]> SOURCE /home/labex/project/ConversionFunctions.sql;
Это выполнит SQL-запрос в файле ConversionFunctions.sql и отобразит результаты.
Вывод должен выглядеть примерно так:
+------------+------------+
| Entry Date | New Date |
+------------+------------+
| 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 rows in set, 4 warnings (0.000 sec)
Этот вывод отображает дату приема на работу и дату изменения для всех сотрудников в таблице emp, причем дата приема на работу в формате yy-MM, а дата изменения в формате yyyy-MM-dd.
Резюме
Поздравляем! Вы завершили этот проект. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.



