컴퓨터 과학/데이터 베이스

SQL 명령어 분류 정리 – DML, DDL, DCL, TCL 비교

Data Jun 2025. 8. 21. 10:36

데이터베이스에서 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 = 트랜잭션을 "관리한다"

이렇게 기억하면 훨씬 쉽습니다 👍