데이터베이스에서 SQL을 다루다 보면 DML, DDL, DCL, TCL 같은 용어를 자주 접하게 됩니다.
처음에는 헷갈리기 쉬운데, 사실은 각각 SQL 명령어의 성격을 구분한 분류 체계입니다. 오늘은 이 네 가지를 간단히 비교해 보겠습니다.
DML (Data Manipulation Language, 데이터 조작어)
- Manipulation = 조작, 다룸 이라는 뜻입니다.
- 즉, 데이터를 직접 다루는 명령어들이 여기에 포함됩니다.
- 대표 명령어:
- SELECT (조회)
- INSERT (삽입)
- UPDATE (수정)
- DELETE (삭제)
👉 예시:
SELECT * FROM memberTBL WHERE age > 30;
DDL (Data Definition Language, 데이터 정의어)
- Definition = 정의, 구조를 세움
- 즉, 데이터의 구조(스키마)를 정의하거나 변경하는 명령어입니다.
- 대표 명령어:
- CREATE (생성)
- ALTER (수정)
- DROP (삭제)
- TRUNCATE (전체 삭제)
👉 예시:
CREATE TABLE memberTBL (
memberID INT PRIMARY KEY,
memberName VARCHAR(20)
);
DCL (Data Control Language, 데이터 제어어)
- Control = 제어, 권한 관리
- 즉, 사용자의 권한과 보안을 제어하는 명령어입니다.
- 대표 명령어:
- GRANT (권한 부여)
- REVOKE (권한 회수)
👉 예시:
GRANT SELECT ON memberTBL TO user1;
TCL (Transaction Control Language, 트랜잭션 제어어)
- Transaction = 작업 단위
- 여러 SQL 작업을 하나의 논리적 단위로 묶어서 제어합니다.
- 대표 명령어:
- COMMIT (변경 확정)
- ROLLBACK (변경 취소)
- SAVEPOINT (저장 지점 설정)
👉 예시:
UPDATE account SET balance = balance - 1000 WHERE id = 1;
UPDATE account SET balance = balance + 1000 WHERE id = 2;
COMMIT;
한눈에 비교

정리하자면,
- DML = 데이터를 "다루고"
- DDL = 구조를 "정의하고"
- DCL = 권한을 "제어하고"
- TCL = 트랜잭션을 "관리한다"
이렇게 기억하면 훨씬 쉽습니다 👍
'컴퓨터 과학 > 데이터 베이스' 카테고리의 다른 글
| MySQL 변수 이해하기: DECLARE vs @var (0) | 2025.08.21 |
|---|---|
| MySQL에서 사용자 변수와 PREPARE/EXECUTE 활용하기 (0) | 2025.08.21 |
| 뷰(View)란 무엇일까? (1) | 2025.08.20 |
| 데이터베이스 개체(Object) 간단 정리 (1) | 2025.08.20 |
| MySQL 트리거(Trigger)란? (0) | 2025.08.20 |