Задача по функциям преобразования в MySQL

MySQLBeginner
Практиковаться сейчас

Введение

В этом проекте вы научитесь использовать общие функции преобразования 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.

  1. Запустите службу MySQL:
sudo service mysql start
  1. Подключитесь к MySQL с использованием команды sudo без пароля:
sudo mysql
  1. Импортируйте данные из /home/labex/project/personnel.sql в базу данных personnel:
MariaDB [(none)]> SOURCE /home/labex/project/personnel.sql;

Написать скрипт с функциями преобразования

В этом шаге вы научитесь писать скрипт ConversionFunctions.sql для извлечения соответствующей информации из таблицы emp в базе данных personnel с использованием общих функций преобразования MySQL.

  1. Откройте файл ConversionFunctions.sql.
  2. Добавьте следующий 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 для отображения результатов.
  1. Сохраните файл ConversionFunctions.sql.

Запустить скрипт с функциями преобразования

В этом шаге вы научитесь запускать скрипт ConversionFunctions.sql в MySQL.

  1. В提示符 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, чтобы улучшить свои навыки.

✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться