MySQL 데이터 조작 종합

MySQLBeginner
지금 연습하기

소개

이 프로젝트에서는 Employees 데이터베이스의 Employees 테이블 (emp) 에 대한 포괄적인 DML (Data Manipulation Language, 데이터 조작 언어) 작업을 수행하는 방법을 배우게 됩니다. 새로운 레코드를 삽입하고, 기존 레코드를 업데이트하며, 테이블에서 레코드를 삭제하는 방법을 배우게 됩니다.

👀 미리보기

DML 작업 미리보기

🎯 과제

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

  • 비밀번호 없이 sudo 명령을 사용하여 MySQL 에 접근하는 방법
  • SQL 파일을 MySQL 데이터베이스로 가져오는 방법
  • 단일 SQL 문을 사용하여 emp 테이블에 새로운 레코드를 삽입하는 방법
  • emp 테이블에서 직원의 상사를 업데이트하는 방법
  • NULL comm 값을 가진 emp 테이블의 모든 레코드를 업데이트하여 comm을 0 으로 설정하는 방법
  • emp 테이블에서 가장 높은 사원 번호를 가진 레코드를 삭제하는 방법
  • 특정 관리자에게 직접 보고하는 모든 직원을 emp 테이블에서 삭제하는 방법

🏆 성과

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

  • MySQL 데이터베이스 테이블에서 포괄적인 DML 작업을 수행할 수 있습니다.
  • SQL 문을 사용하여 데이터를 삽입, 업데이트 및 삭제하는 방법을 이해할 수 있습니다.
  • 관계형 데이터베이스에서 데이터를 관리하고 조작하는 경험을 얻을 수 있습니다.
  • 프로젝트의 다양한 과제를 완료하여 문제 해결 능력을 개발할 수 있습니다.

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 데이터베이스로 데이터를 가져옵니다:
SOURCE /home/labex/project/personnel.sql;
  1. personnel 데이터베이스로 전환합니다:
USE personnel;
✨ 솔루션 확인 및 연습

새로운 레코드 삽입

이 단계에서는 단일 SQL 문을 사용하여 emp 테이블에 두 개의 새로운 레코드를 추가하는 방법을 배우게 됩니다.

다음 두 개의 레코드를 emp 테이블에 추가합니다:

INSERT INTO emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (9878, 'JOHN', 'CLERK', 7499, '2022-01-05', 1800, 0, 10),
       (8868, 'JANE', 'CLERK', 7566, '2022-02-12', 2500, NULL, 20);
✨ 솔루션 확인 및 연습

직원 관리자 정보 업데이트

이 단계에서는 emp 테이블에서 직원 SCOTT 의 직속 상사를 직원 BLAKE 의 직속 상사로 변경하는 방법을 배우게 됩니다.

UPDATE emp
SET mgr = (SELECT mgr
           FROM emp
           WHERE ename = 'BLAKE')
WHERE ename = 'SCOTT';
✨ 솔루션 확인 및 연습

NULL 커미션 값 업데이트

이 단계에서는 comm 값이 NULLemp 테이블의 모든 항목을 업데이트하여 comm을 0 으로 설정하는 방법을 배우게 됩니다.

UPDATE emp
SET comm = 0
WHERE comm IS NULL;
✨ 솔루션 확인 및 연습

최고 사원 번호 삭제

이 단계에서는 emp 테이블에서 가장 높은 사원 번호를 가진 항목을 제거하는 방법을 배우게 됩니다.

DELETE FROM emp
WHERE empno = (SELECT MAX(empno) FROM emp);
✨ 솔루션 확인 및 연습

BLAKE 에게 보고하는 직원 삭제

이 단계에서는 emp 테이블에서 BLAKE 에게 직접 보고하는 모든 직원을 삭제하는 방법을 배우게 됩니다.

DELETE FROM emp
WHERE mgr = (SELECT empno FROM emp WHERE ename = 'BLAKE');

위 단계를 수행한 후, 다음 결과를 참조하여 확인할 수 있습니다.

MariaDB [personnel]> select * from emp;
+-------+--------+-----------+------+------------+---------+------+--------+
| empno | ename  | job       | mgr  | hiredate   | sal     | comm | deptno |
+-------+--------+-----------+------+------------+---------+------+--------+
|  7369 | SMITH  | CLERK     | 7902 | 1980-12-17 |  800.00 | 0.00 |     20 |
|  7566 | JONES  | MANAGER   | 7839 | 1981-04-02 | 2975.00 | 0.00 |     20 |
|  7698 | BLAKE  | MANAGER   | 7839 | 1981-05-01 | 2850.00 | 0.00 |     30 |
|  7782 | CLARK  | MANAGER   | 7839 | 1981-06-09 | 2450.00 | 0.00 |     10 |
|  7788 | SCOTT  | ANALYST   | 7839 | 1987-06-13 | 3000.00 | 0.00 |     20 |
|  7839 | KING   | PRESIDENT | NULL | 1981-11-17 | 5000.00 | 0.00 |     10 |
|  7876 | ADAMS  | CLERK     | 7788 | 1987-06-13 | 1100.00 | 0.00 |     20 |
|  7902 | FORD   | ANALYST   | 7566 | 1981-12-03 | 3000.00 | 0.00 |     20 |
|  7934 | MILLER | CLERK     | 7782 | 1982-01-23 | 1300.00 | 0.00 |     10 |
|  8868 | JANE   | CLERK     | 7566 | 2022-02-12 | 2500.00 | 0.00 |     20 |
+-------+--------+-----------+------+------------+---------+------+--------+
10 rows in set (0.000 sec)
✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.