DML(Data Manipulation Language)은 데이터베이스에서 데이터를 추가, 수정, 삭제하는 데 사용되는 SQL 명령어 집합입니다. DML은 데이터 자체를 다루기 때문에 주로 사용자가 데이터를 조회하고 변경하는 작업에 사용됩니다. 대표적인 DML 명령어로는 INSERT
, UPDATE
, DELETE
, MERGE
가 있습니다.
DML의 주요 명령어와 예시
1. INSERT - 데이터 삽입
INSERT
는 테이블에 새 데이터를 추가합니다. INSERT
에는 INSERT INTO VALUES
, INSERT INTO SELECT
, INSERT ALL
, INSERT FIRST
와 같은 방식이 있습니다.
기본 INSERT 예제
INSERT INTO emp (empno, ename, job, sal, deptno)
VALUES (101, 'Alice', 'MANAGER', 5000, 10);
emp
테이블에 새로운 행을 추가합니다. 이 예제는empno
,ename
,job
,sal
,deptno
컬럼에 각각 값을 삽입합니다.
INSERT INTO SELECT 예제
INSERT INTO emp_backup (empno, ename, job, sal, deptno)
SELECT empno, ename, job, sal, deptno FROM emp WHERE deptno = 10;
emp
테이블에서deptno
가 10인 데이터를emp_backup
테이블에 복사하여 삽입합니다.
2. UPDATE - 데이터 수정
UPDATE
는 기존 테이블의 데이터를 수정합니다. SET
과 WHERE
절을 사용하여 특정 조건에 맞는 데이터를 변경할 수 있습니다.
기본 UPDATE 예제
UPDATE emp
SET sal = sal * 1.1
WHERE job = 'MANAGER';
emp
테이블에서job
이'MANAGER'
인 직원의 급여(sal
)를 10% 인상합니다.
다중 컬럼 UPDATE 예제
UPDATE emp
SET job = 'SENIOR MANAGER', sal = sal + 1000
WHERE empno = 101;
empno
가 101인 직원의job
을'SENIOR MANAGER'
로 변경하고,sal
을 1000 증가시킵니다.
3. DELETE - 데이터 삭제
DELETE
는 특정 조건에 맞는 데이터를 삭제합니다. WHERE
절을 사용하여 특정 조건을 지정할 수 있습니다. 조건을 지정하지 않으면 테이블의 모든 데이터가 삭제됩니다.
기본 DELETE 예제
DELETE FROM emp
WHERE empno = 101;
emp
테이블에서empno
가 101인 행을 삭제합니다.
조건 없는 DELETE 예제
DELETE FROM emp;
emp
테이블의 모든 데이터를 삭제하지만 테이블 구조는 유지됩니다.
4. MERGE - 데이터 병합 (UPSERT)
MERGE
는 테이블에 데이터를 삽입하거나 업데이트하는 복합 작업을 수행합니다. 조건에 따라 해당 데이터가 있으면 업데이트하고, 없으면 삽입할 때 사용됩니다. 주로 UPSERT
(Update + Insert)라고 불립니다.
기본 MERGE 예제
MERGE INTO emp e
USING emp_backup eb
ON (e.empno = eb.empno)
WHEN MATCHED THEN
UPDATE SET e.sal = eb.sal, e.job = eb.job
WHEN NOT MATCHED THEN
INSERT (empno, ename, job, sal, deptno)
VALUES (eb.empno, eb.ename, eb.job, eb.sal, eb.deptno);
emp_backup
테이블의 데이터를emp
테이블과 비교합니다.empno
가 동일한 데이터가 존재할 경우sal
과job
을 업데이트합니다.- 동일한 데이터가 없을 경우 새 데이터를
emp
테이블에 삽입합니다.
요약
- INSERT: 데이터를 테이블에 삽입합니다.
- UPDATE: 기존 데이터를 수정합니다.
- DELETE: 조건에 맞는 데이터를 삭제합니다.
- MERGE: 조건에 따라 데이터를 삽입하거나 업데이트하는 복합 작업을 수행합니다.
DML 명령어는 데이터베이스 내 데이터를 관리하고 유지하는 데 있어 필수적이며, 데이터베이스 사용 시 가장 빈번하게 사용되는 명령어들입니다.
'Topcit' 카테고리의 다른 글
Java PreparedStatement (0) | 2024.10.28 |
---|---|
Java 객체지향 프로그래밍 특징 (0) | 2024.10.28 |
SQL DCL 요약 (0) | 2024.10.28 |
SQL DQL 요약 (0) | 2024.10.27 |
SQL DDL 요약 (0) | 2024.10.27 |