DML (데이터 조작어)

DML 데이터 조작어 완벽 가이드: INSERT, UPDATE, DELETE, MERGE 사용법과 실습 예시

DML(데이터 조작어)은 데이터베이스의 데이터를 수정하는 SQL 명령어입니다. INSERT로 데이터 추가, UPDATE로 데이터 수정, DELETE로 데이터 삭제가 가능합니다. MERGE를 사용하여 두 테이블의 데이터를 병합할 수 있으며, 기본 SELECT 문을 통해 데이터를 조회하고 다양한 조작 예시를 통해 실습할 수 있습니다.

DML (데이터 조작어)

INSERT, UPDATE, DELETE 사용법

DML(데이터 조작어)의 기본 명령어인 INSERT, UPDATE, DELETE는 데이터베이스의 데이터를 추가, 수정, 삭제하는 데 사용됩니다. 각 명령어의 사용법을 자세히 살펴보겠습니다.

1. INSERT

INSERT 명령어는 테이블에 새로운 데이터를 추가할 때 사용합니다. 기본 구문은 다음과 같습니다:

INSERT INTO 테이블명 (열1, 열2, 열3, ...)
VALUES (값1, 값2, 값3, ...);

예를 들어, employees 테이블에 새로운 직원을 추가하는 쿼리는 다음과 같습니다:

INSERT INTO employees (employee_id, first_name, last_name, salary, department_id)
VALUES (1001, '홍', '길동', 3000, 10);

위 쿼리는 employee_id가 1001인 직원을 employees 테이블에 추가합니다.

2. UPDATE

UPDATE 명령어는 기존 데이터의 값을 수정할 때 사용합니다. 기본 구문은 다음과 같습니다:

UPDATE 테이블명
SET 열1 = 값1, 열2 = 값2, ...
WHERE 조건;

예를 들어, employees 테이블에서 employee_id가 1001인 직원의 급여를 3500으로 수정하는 쿼리는 다음과 같습니다:

UPDATE employees
SET salary = 3500
WHERE employee_id = 1001;

위 쿼리는 조건에 맞는 직원의 급여를 변경합니다. WHERE 절을 사용하지 않으면 모든 행이 수정되므로 주의해야 합니다.

3. DELETE

DELETE 명령어는 테이블에서 데이터를 삭제할 때 사용합니다. 기본 구문은 다음과 같습니다:

DELETE FROM 테이블명
WHERE 조건;

예를 들어, employees 테이블에서 employee_id가 1001인 직원을 삭제하는 쿼리는 다음과 같습니다:

DELETE FROM employees
WHERE employee_id = 1001;

위 쿼리는 조건에 맞는 직원을 삭제합니다. 마찬가지로 WHERE 절을 사용하지 않으면 모든 행이 삭제될 수 있으니 주의해야 합니다.

이처럼 INSERT, UPDATE, DELETE 명령어를 통해 데이터베이스의 데이터를 효과적으로 관리할 수 있습니다. 각 명령어의 사용법을 숙지하고 실습을 통해 익히는 것이 중요합니다.

MERGE를 사용한 데이터 병합

MERGE 명령어는 두 테이블의 데이터를 병합하여 삽입하거나 업데이트하는 데 사용됩니다. 이 명령어는 주로 데이터 동기화나 업데이트 작업에 유용합니다. MERGE는 조건에 따라 데이터를 삽입하거나 수정할 수 있습니다. 기본 구문은 다음과 같습니다:

MERGE INTO 대상_테이블 USING 소스_테이블
ON 조건
WHEN MATCHED THEN
    UPDATE SET 열1 = 값1, 열2 = 값2, ...
WHEN NOT MATCHED THEN
    INSERT (열1, 열2, ...)
    VALUES (값1, 값2, ...);

예제

예를 들어, employees 테이블과 new_employees라는 새로운 직원 정보를 담고 있는 테이블이 있다고 가정해 보겠습니다. new_employees 테이블에는 기존 직원의 급여를 업데이트하거나 새로운 직원을 추가해야 합니다.

1. 테이블 구조

  • employees 테이블

    • employee_id
    • first_name
    • last_name
    • salary
  • new_employees 테이블

    • employee_id
    • first_name
    • last_name
    • salary

2. MERGE 쿼리

다음은 employees 테이블과 new_employees 테이블을 병합하는 예제입니다:

MERGE INTO employees e
USING new_employees n
ON (e.employee_id = n.employee_id)
WHEN MATCHED THEN
    UPDATE SET e.salary = n.salary
WHEN NOT MATCHED THEN
    INSERT (employee_id, first_name, last_name, salary)
    VALUES (n.employee_id, n.first_name, n.last_name, n.salary);

이 쿼리는 다음과 같이 작동합니다:

  • ON 절에서 employee_id가 일치하는 경우, 즉 기존 직원이 new_employees 테이블에 존재하는 경우, 해당 직원의 급여를 업데이트합니다.
  • WHEN NOT MATCHED 절에서는 employee_id가 일치하지 않는 경우, 즉 새로운 직원인 경우, employees 테이블에 새로운 행을 삽입합니다.

주의사항

  • MERGE 명령어를 사용할 때는 항상 ON 절을 정확하게 설정해야 합니다. 잘못된 조건은 원하지 않는 결과를 초래할 수 있습니다.
  • 데이터의 무결성을 유지하기 위해 병합할 테이블의 구조와 데이터 타입이 일치하는지 확인하는 것이 중요합니다.

MERGE 명령어를 통해 데이터를 효율적으로 병합하고 관리할 수 있으며, 데이터베이스의 유지 관리에 큰 도움이 됩니다.

기본 SELECT 문

SELECT 문은 데이터베이스에서 데이터를 조회하는 데 사용되는 가장 기본적인 SQL 명령어입니다. 이 명령어를 통해 특정 테이블의 데이터를 선택하여 볼 수 있습니다. 기본 구문은 다음과 같습니다:

SELECT 열1, 열2, ...
FROM 테이블명
WHERE 조건;

1. 모든 열 조회

특정 테이블의 모든 열을 조회하려면 * 기호를 사용합니다. 예를 들어, employees 테이블의 모든 정보를 조회하는 쿼리는 다음과 같습니다:

SELECT *
FROM employees;

이 쿼리는 employees 테이블의 모든 행과 열을 반환합니다.

2. 특정 열 조회

특정 열만 조회하고 싶을 때는 열 이름을 명시합니다. 예를 들어, 직원의 이름과 급여만 조회하는 쿼리는 다음과 같습니다:

SELECT first_name, last_name, salary
FROM employees;

이 쿼리는 first_name, last_name, salary 열만 선택하여 결과를 반환합니다.

3. 조건을 사용한 조회

WHERE 절을 사용하여 특정 조건을 만족하는 데이터만 조회할 수 있습니다. 예를 들어, 급여가 3000 이상인 직원의 정보를 조회하는 쿼리는 다음과 같습니다:

SELECT *
FROM employees
WHERE salary >= 3000;

이 쿼리는 급여가 3000 이상인 직원의 모든 정보를 반환합니다.

4. 정렬

조회한 데이터를 정렬하려면 ORDER BY 절을 사용합니다. 예를 들어, 급여를 기준으로 오름차순으로 정렬하여 조회하는 쿼리는 다음과 같습니다:

SELECT *
FROM employees
ORDER BY salary ASC;

ASC는 오름차순을 의미하며, 내림차순으로 정렬하고 싶다면 DESC를 사용합니다.

5. 결과 제한

조회 결과의 개수를 제한하려면 ROWNUM을 사용할 수 있습니다. 예를 들어, 상위 5명의 직원 정보를 조회하는 쿼리는 다음과 같습니다:

SELECT *
FROM employees
WHERE ROWNUM <= 5;

이 쿼리는 employees 테이블에서 처음 5개의 행만 반환합니다.

요약

SELECT 문은 데이터를 조회하는 데 매우 유용하며, 다양한 조건과 옵션을 통해 필요한 정보를 쉽게 얻을 수 있습니다. 기본적인 SELECT 문을 이해하고 활용하는 것은 SQL을 사용하는 데 있어 매우 중요합니다.

데이터 조회 및 조작 예시

DML(데이터 조작어)의 다양한 명령어를 사용하여 데이터베이스에서 데이터를 조회하고 조작하는 여러 가지 예시를 살펴보겠습니다. 이 예시들은 실제로 자주 사용되는 쿼리들로, SQL을 익히는 데 큰 도움이 될 것입니다.

1. 직원 데이터 조회

employees 테이블에서 모든 직원의 이름과 급여를 조회하는 예시입니다:

SELECT first_name, last_name, salary
FROM employees;

이 쿼리는 모든 직원의 이름과 급여 정보를 반환합니다.

2. 특정 조건으로 데이터 조회

급여가 2500 이상인 직원의 정보를 조회하는 예시입니다:

SELECT *
FROM employees
WHERE salary >= 2500;

이 쿼리는 급여가 2500 이상인 직원의 모든 정보를 반환합니다.

3. 데이터 업데이트

특정 직원의 급여를 업데이트하는 예시입니다. employee_id가 100의 직원의 급여를 3000으로 변경합니다:

UPDATE employees
SET salary = 3000
WHERE employee_id = 100;

이 쿼리는 employee_id가 100인 직원의 급여를 3000으로 수정합니다.

4. 데이터 삭제

급여가 1500 이하인 직원을 삭제하는 예시입니다:

DELETE FROM employees
WHERE salary <= 1500;

이 쿼리는 급여가 1500 이하인 모든 직원을 employees 테이블에서 삭제합니다.

5. 데이터 삽입

새로운 직원을 employees 테이블에 추가하는 예시입니다. employee_id가 101인 직원을 추가합니다:

INSERT INTO employees (employee_id, first_name, last_name, salary, department_id)
VALUES (101, '이', '민수', 2800, 20);

이 쿼리는 employee_id가 101인 새로운 직원을 추가합니다.

6. 데이터 병합

new_employees 테이블의 데이터를 employees 테이블에 병합하는 예시입니다. 기존 직원의 급여를 업데이트하거나 새로운 직원을 추가합니다:

MERGE INTO employees e
USING new_employees n
ON (e.employee_id = n.employee_id)
WHEN MATCHED THEN
    UPDATE SET e.salary = n.salary
WHEN NOT MATCHED THEN
    INSERT (employee_id, first_name, last_name, salary)
    VALUES (n.employee_id, n.first_name, n.last_name, n.salary);

이 쿼리는 new_employees 테이블의 데이터를 기준으로 employees 테이블을 업데이트하거나 새로운 직원을 추가합니다.

요약

위의 예시들은 DML 명령어를 사용하여 데이터를 조회하고 조작하는 방법을 보여줍니다. 다양한 쿼리를 실습함으로써 SQL에 대한 이해도를 높이고, 실제 데이터베이스 환경에서 효과적으로 데이터를 관리할 수 있습니다.

Similar Posts