Learning
토픽 173 / 201·SQL 및 데이터베이스 객체

SQL 분류 (DDL / DML / DCL / TCL)

SQL 분류 (DDL / DML / DCL / TCL)

SQL(Structured Query Language)을 기능별로 분류한 체계로, 데이터 정의(DDL), 데이터 조작(DML), 데이터 제어(DCL), 트랜잭션 제어(TCL)의 4가지 범주로 구분

DDL (Data Definition Language, 데이터 정의어)

  • 스키마, 테이블, 인덱스 등 DB 구조를 정의·변경·삭제
  • CREATE / ALTER / DROP / TRUNCATE / RENAME
  • 특징: 자동 COMMIT, 롤백 불가, 스키마 변경

DML (Data Manipulation Language, 데이터 조작어)

  • 데이터의 삽입·조회·수정·삭제 수행
  • SELECT / INSERT / UPDATE / DELETE / MERGE(UPSERT)
  • 특징: 명시적 COMMIT 필요, 롤백 가능, 로그 기록

DCL (Data Control Language, 데이터 제어어)

  • 데이터 접근 권한 및 보안 제어
  • GRANT(권한 부여) / REVOKE(권한 회수), WITH GRANT OPTION(재부여)
  • 권한 종류: SELECT, INSERT, UPDATE, DELETE, ALL, EXECUTE

TCL (Transaction Control Language, 트랜잭션 제어어)

  • 트랜잭션의 시작·완료·취소 제어
  • COMMIT(확정) / ROLLBACK(취소) / SAVEPOINT(중간저장점) / SET TRANSACTION(격리수준)

비교: DDL(구조/자동커밋) vs DML(데이터/수동커밋) vs DCL(권한/보안) vs TCL(트랜잭션/제어)

TRUNCATE vs DELETE: TRUNCATE(DDL/빠름/롤백불가/WHERE불가) vs DELETE(DML/느림/롤백가능/조건삭제)

연관: 관계 대수, 트랜잭션, ACID, 무결성, 인덱스