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)
트랜잭션은 하나의 작업 단위이다.
예를 들어 계좌 이체의 경우
- A 계좌 출금
- 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 공부 팁 (실전)
이 파트는 이론보다 문제 패턴이 중요하다.
특히 다음 문제는 반드시 나온다.
- UPDATE WHERE 없는 문제
- DELETE vs TRUNCATE
- COMMIT / ROLLBACK
- SAVEPOINT 문제
- 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 |