SQLD 시험 대비

SQLD DML / TCL

_김영인 2026. 3. 5. 23:54

SQL에서 데이터를 다루는 명령어는 크게 DML (Data Manipulation Language)TCL (Transaction Control Language) 로 나뉜다.

이 두 개는 SQLD 시험에서도 매우 자주 출제되는 핵심 영역이다.


 

1. DML 

 

DML은 이미 존재하는 테이블의 데이터를 조회하거나 변경하는 SQL 명령어이다.

데이터 자체를 조작하는 언어이다.

구분  명령어 설명
조회 SELECT 데이터 조회
추가 INSERT 데이터 삽입
수정 UPDATE 데이터 수정
삭제 DELETE 데이터 삭제
병합 MERGE 두 테이블 데이터를 비교하여 INSERT / UPDATE 수행

SQLD 시험에서는 INSERT / UPDATE / DELETE / MERGE가 특히 중요하다.


 

2. DML 특징 (시험 핵심)

 

DML의 중요한 특징은 자동 커밋이 되지 않는다는 것이다.

INSERT, UPDATE, DELETE 같은 작업을 수행해도 COMMIT 하기 전까지는 DB에 확정되지 않는다.

 

따라서 다음이 가능하다.

  • ROLLBACK → 작업 취소
  • COMMIT 전에는 다른 사용자가 변경사항을 조회할 수 없다

 

3. INSERT

 

INSERT는 테이블에 새로운 데이터를 추가하는 명령어이다.

 

기본 문법

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

 

예시

INSERT INTO MEMBER
VALUES (1007, 'Tom', 'tom@gmail.com', '010-5532-6565');

 

컬럼 지정 INSERT

 

컬럼을 지정하면 일부 컬럼만 입력 가능하다.

INSERT INTO MEMBER (MEMBER_ID, NAME, EMAIL)
VALUES (1006, 'Ethan', 'ethan@gmail.com');

 

이 경우 PHONE → NULL 값 입력

INSERT 특징 (시험 포인트)

  • 컬럼 개수와 값 개수는 동일해야 한다
  • 컬럼 순서를 맞춰야 한다
  • 컬럼 생략 시 NULL 또는 DEFAULT 값이 들어간다

 

4. UPDATE

 

UPDATE는 기존 데이터를 수정하는 명령어이다.

 

기본 문법

UPDATE 테이블
SET 컬럼 = 값
WHERE 조건;

 

예시

UPDATE MEMBER
SET PHONE = '010-7788-6869'
WHERE MEMBER_ID = 1006;

 

UPDATE 핵심 포인트

WHERE 조건이 없으면 모든 데이터가 변경된다.

UPDATE MEMBER
SET PHONE = '010-0000-0000';
-- → 전체 데이터 수정

 

SQLD 시험에서 매우 많이 나오는 실수 포인트이다.


 

5. DELETE

 

DELETE는 데이터를 삭제하는 명령어이다.

 

기본 문법

DELETE FROM 테이블
WHERE 조건;

 

예시

DELETE FROM MEMBER
WHERE MEMBER_ID = 1006;

 

DELETE 특징

WHERE 조건이 없으면 전체 데이터가 삭제된다.

DELETE FROM MEMBER;
-- → 테이블 데이터 전체 삭제

 

테이블 구조는 남는다.


 

6. TRUNCATE vs DELETE (시험 단골)

구분 DELETE TRUNCATE
삭제 방식 행 단위 삭제 테이블 전체 삭제
WHERE 사용 가능 불가능
ROLLBACK 가능 불가능
속도 느림 매우 빠름

 

7. MERGE

 

MERGE는 두 테이블 데이터를 비교해서 INSERT / UPDATE를 동시에 수행하는 명령어이다.

UPSERT 개념이다.

 

MERGE 기본 구조

MERGE INTO 대상테이블
USING 비교테이블
ON (조건)

WHEN MATCHED THEN
    UPDATE ...

WHEN NOT MATCHED THEN
    INSERT ...

 

조건 동작
데이터 존재 UPDATE
데이터 없음 INSERT

 

있으면 수정 / 없으면 추가


 

8. TCL

 

TCL은 트랜잭션을 제어하는 명령어이다.

명령어 설명
COMMIT 작업 확정
ROLLBACK 작업 취소
SAVEPOINT 중간 저장

 

9. 트랜잭션 (Transaction)

 

트랜잭션은 하나의 작업 단위이다.

 

예를 들어 계좌 이체의 경우

  1. A 계좌 출금
  2. B 계좌 입금

둘 중 하나라도 실패하면 전체 취소되어야 한다.

이것이 트랜잭션 개념이다.


 

10. COMMIT

 

COMMIT은 트랜잭션을 최종 확정하는 명령어이다.

COMMIT;

COMMIT 이후에는 ROLLBACK 불가능


 

11. ROLLBACK

 

ROLLBACK은 작업을 취소하는 명령어이다.

ROLLBACK;

 

COMMIT 전 상태로 복구된다.


 

12. SAVEPOINT

 

SAVEPOINT는 중간 저장 지점을 만드는 명령어이다.

SAVEPOINT SP1;

 

이후 아래 명령으로 해당 시점까지 복구 가능하다.

ROLLBACK TO SP1;

 

13. SAVEPOINT 예시

BEGIN TRANSACTION;

UPDATE 주문 SET 금액 = 2000 WHERE 고객번호 = 1003;

SAVEPOINT SP1;

UPDATE 주문 SET 금액 = 4000 WHERE 고객번호 = 1003;

ROLLBACK TO SP1;

COMMIT;

 

결과:

  • 첫 번째 UPDATE만 적용
  • 두 번째 UPDATE 취소

 

14. SQLD 시험 핵심 요약

 

DML

  • INSERT / UPDATE / DELETE / MERGE

자동 커밋 여부

  • DDL → 자동 커밋
  • DML → 자동 커밋 아님

UPDATE / DELETE

  • WHERE 없으면 전체 적용

TRUNCATE

  • ROLLBACK 불가능

MERGE

  • 있으면 UPDATE / 없으면 INSERT

TCL

  • COMMIT → 확정
  • ROLLBACK → 취소
  • SAVEPOINT → 중간 복구 지점

 

SQLD 공부 팁 (실전)

 

이 파트는 이론보다 문제 패턴이 중요하다.

 

특히 다음 문제는 반드시 나온다.

  1. UPDATE WHERE 없는 문제
  2. DELETE vs TRUNCATE
  3. COMMIT / ROLLBACK
  4. SAVEPOINT 문제
  5. MERGE 동작

'SQLD 시험 대비' 카테고리의 다른 글

SQLD DCL  (0) 2026.03.07
SQLD DDL  (0) 2026.03.06
SQLD 함정 문제 TOP 20  (0) 2026.03.05
SQLD 정규표현식  (0) 2026.03.04
SQLD PIVOT / UNPIVOT  (0) 2026.03.03