SQL 기본 및 활용

26. DML — SQLD, INSERT·UPDATE·DELETE·MERGE와 TRUNCATE 함정

CBT 전자문제집 편집팀
#SQLD#DML#INSERT#UPDATE#DELETE#MERGE#TRUNCATE

DML(Data Manipulation Language) 은 테이블의 데이터를 조작하는 명령입니다. INSERT(추가)·UPDATE(수정)·DELETE(삭제)·MERGE(있으면 수정, 없으면 추가)가 있고, COMMIT 전까지 ROLLBACK으로 되돌릴 수 있다는 것이 이 단원의 핵심이자 최다 출제 포인트입니다.

이 단원, 시험에서 어디에 나오나 (출제 비중)

  • 제2과목 「SQL 기본 및 활용」 = 40문항 · 80점. DML은 관리 구문 파트의 첫 단원으로, 개념 구분·트랜잭션 동작 판별 유형으로 출제됩니다.
  • DELETE vs TRUNCATE vs DROP 구분이 오답을 가르는 단골입니다. (단원별 문항수는 공개되지 않습니다 — 출처: KDATA 출제기준.)

출제 포인트 — 시험이 실제로 묻는 것

  1. DML은 COMMIT 전 ROLLBACK 가능 (DDL은 자동 커밋) (최다 출제)
  2. DELETE(DML·복구 가능) vs TRUNCATE(DDL·복구 불가) vs DROP(구조 삭제)
  3. WHERE 없는 UPDATE/DELETE = 전체 행 적용
  4. MERGE = UPSERT — WHEN MATCHED / NOT MATCHED

① 기본 문법 — 대상은 WHERE로 지정

회원 표에 INSERT는 새 행을 추가하고, UPDATE는 등급을 SILVER에서 GOLD로 수정하고, DELETE는 행을 삭제하는 효과를 보여주는 예시 표

그림 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 — 최다 출제 비교

DELETETRUNCATEDROP
분류DMLDDLDDL
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(구조까지 삭제).

참고 출처

CBT 전자문제집 편집팀

자격증 개념과 기출 유형을 쉽게 정리합니다.

관련 글