DML(Data Manipulation Language) 은 테이블의 데이터를 조작하는 명령입니다. INSERT(추가)·UPDATE(수정)·DELETE(삭제)·MERGE(있으면 수정, 없으면 추가)가 있고, COMMIT 전까지 ROLLBACK으로 되돌릴 수 있다는 것이 이 단원의 핵심이자 최다 출제 포인트입니다.
이 단원, 시험에서 어디에 나오나 (출제 비중)
- 제2과목 「SQL 기본 및 활용」 = 40문항 · 80점. DML은 관리 구문 파트의 첫 단원으로, 개념 구분·트랜잭션 동작 판별 유형으로 출제됩니다.
- DELETE vs TRUNCATE vs DROP 구분이 오답을 가르는 단골입니다. (단원별 문항수는 공개되지 않습니다 — 출처: KDATA 출제기준.)
출제 포인트 — 시험이 실제로 묻는 것
- DML은 COMMIT 전 ROLLBACK 가능 (DDL은 자동 커밋) (최다 출제)
- DELETE(DML·복구 가능) vs TRUNCATE(DDL·복구 불가) vs DROP(구조 삭제)
- WHERE 없는 UPDATE/DELETE = 전체 행 적용
MERGE= UPSERT —WHEN MATCHED / NOT MATCHED
① 기본 문법 — 대상은 WHERE로 지정
그림 1. INSERT 추가·UPDATE 수정·DELETE 삭제 — 대상은 WHERE로 지정. (자작 도식)
INSERT INTO 회원 (회원번호, 등급) VALUES (4, 'SILVER'); -- 추가
UPDATE 회원 SET 등급 = 'GOLD' WHERE 회원번호 = 2; -- 수정
DELETE FROM 회원 WHERE 회원번호 = 3; -- 삭제
함정:
WHERE를 빼먹으면UPDATE·DELETE가 전체 행에 적용됩니다.DELETE FROM 회원;은 모든 행 삭제입니다.
INSERT ... SELECT를 쓰면 다른 테이블의 조회 결과를 여러 행 한 번에 넣을 수 있습니다(VALUES는 오라클에서 한 행).
② MERGE — 있으면 UPDATE, 없으면 INSERT
MERGE INTO 회원 t
USING (SELECT 4 회원번호, 'SILVER' 등급 FROM DUAL) s
ON (t.회원번호 = s.회원번호)
WHEN MATCHED THEN UPDATE SET t.등급 = s.등급 -- 있으면 수정
WHEN NOT MATCHED THEN INSERT (회원번호, 등급)
VALUES (s.회원번호, s.등급); -- 없으면 추가
키가 일치하는 행이 있으면 WHEN MATCHED(UPDATE), 없으면 WHEN NOT MATCHED(INSERT) — 이른바 UPSERT입니다.
③ DELETE vs TRUNCATE vs DROP — 최다 출제 비교
| DELETE | TRUNCATE | DROP | |
|---|---|---|---|
| 분류 | DML | DDL | DDL |
| WHERE | 가능(일부만) | 불가(전체) | — |
| ROLLBACK | 가능(COMMIT 전) | 불가(자동 커밋) | 불가 |
| 테이블 구조 | 유지 | 유지 | 삭제 |
- DELETE는 DML이라 COMMIT 전이면
ROLLBACK으로 복구됩니다. 행별 로그를 남겨 상대적으로 느립니다. - TRUNCATE는 DDL이라 실행 즉시 자동 커밋 → 되돌릴 수 없습니다. 전체 행을 빠르게 비우지만 구조는 남습니다.
- DROP은 데이터와 함께 테이블 구조 자체를 삭제합니다.
판별법: "지운 걸 ROLLBACK으로 되돌릴 수 있는가?"라고 물으면 DELETE만 예입니다.
한 장 정리 (암기 카드)
INSERT(추가)·UPDATE(수정)·DELETE(삭제)·MERGE(UPSERT). 대상은 WHERE — 없으면 전체 적용.- DML = COMMIT 전 ROLLBACK 가능, DDL(TRUNCATE·DROP)은 자동 커밋.
DELETE(일부·복구 가능) /TRUNCATE(전체·복구 불가·구조 유지) /DROP(구조까지 삭제).
참고 출처
- 시험 과목·배점: 한국데이터산업진흥원(KDATA) 데이터자격검정 (2026년 7월 확인)
- DML·MERGE·TRUNCATE 동작은 오라클 SQL·표준 SQL에 근거하며, 본문 예시·도식·설명은 자작입니다.