MySQL 변환 함수 챌린지

MySQLBeginner
지금 연습하기

소개

이 프로젝트에서는 MySQL 의 일반적인 변환 함수를 사용하여 personnel 데이터베이스의 emp 테이블에서 관련 정보를 추출하는 방법을 배우게 됩니다. 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)

🎯 과제

이 프로젝트에서는 다음을 배우게 됩니다.

  • 비밀번호 없이 sudo 명령을 사용하여 MySQL 에 액세스하는 방법
  • SQL 파일을 MySQL 데이터베이스로 가져오는 방법
  • DATE_FORMAT() 및 STR_TO_DATE()와 같은 함수를 사용하여 날짜 및 시간 변환을 수행하는 SQL 스크립트를 작성하는 방법
  • 적절한 별칭 (alias) 을 사용하여 변환 함수의 결과를 표시하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다.

  • MySQL 의 변환 함수를 사용하여 날짜 및 시간 데이터를 조작하고 표시하는 방법을 이해합니다.
  • 복잡한 데이터 변환을 수행하는 SQL 스크립트를 작성합니다.
  • MySQL 에 대한 지식을 실제 데이터 처리 문제 해결에 적용합니다.

MySQL 접속 및 데이터 가져오기

이 단계에서는 비밀번호 없이 sudo 명령을 사용하여 MySQL 에 접속하고, /home/labex/project/personnel.sql에서 personnel 데이터베이스로 데이터를 가져오는 방법을 배우게 됩니다.

  1. MySQL 서비스 시작:
sudo service mysql start
  1. 비밀번호 없이 sudo 명령을 사용하여 MySQL 에 접속:
sudo mysql
  1. /home/labex/project/personnel.sql에서 personnel 데이터베이스로 데이터 가져오기:
MariaDB [(none)]> SOURCE /home/labex/project/personnel.sql;

변환 함수 스크립트 작성

이 단계에서는 MySQL 의 일반적인 변환 함수를 사용하여 personnel 데이터베이스의 emp 테이블에서 관련 정보를 추출하는 ConversionFunctions.sql 스크립트를 작성하는 방법을 배우게 됩니다.

  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 별칭 (alias) 을 사용하여 결과를 표시합니다.
  1. ConversionFunctions.sql 파일을 저장합니다.

변환 함수 스크립트 실행

이 단계에서는 MySQL 에서 ConversionFunctions.sql 스크립트를 실행하는 방법을 배우게 됩니다.

  1. MySQL 프롬프트에서 다음 명령을 실행하여 ConversionFunctions.sql 스크립트를 실행합니다.
MariaDB [personnel]> SOURCE /home/labex/project/ConversionFunctions.sql;

이렇게 하면 ConversionFunctions.sql 파일의 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 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.

✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습