복잡한뇌구조마냥

[SQL] 명령어 분류 - DDL / DML / DCL / TCL 본문

BE/DB

[SQL] 명령어 분류 - DDL / DML / DCL / TCL

지금해냥 2025. 9. 22. 08:57

SQL(Structured Query Language)은 데이터베이스를 정의(Define), 조작(Manipulate), 제어(Control) 하는 데 사용되는 언어입니다.
크게 아래 4가지로 분류됩니다 👇


📘 1. DDL (Data Definition Language) — 데이터 정의어

데이터베이스의 구조(스키마) 를 정의하거나 변경할 때 사용합니다.

명령어 설명 예시
CREATE 데이터베이스, 테이블, 뷰 등을 생성 CREATE TABLE users (id INT, name VARCHAR(50));
ALTER 테이블 구조 변경 (컬럼 추가/삭제 등) ALTER TABLE users ADD email VARCHAR(100);
DROP 데이터베이스나 테이블 삭제 DROP TABLE users;
TRUNCATE 테이블의 모든 데이터를 삭제 (구조는 유지) TRUNCATE TABLE users;

특징

  • 자동 커밋(Commit)됨 → ROLLBACK 불가
  • 구조 자체를 다룸 (데이터 X)

📗 2. DML (Data Manipulation Language) — 데이터 조작어

테이블 내 데이터 를 조회·추가·수정·삭제하는 데 사용합니다.

명령어 설명 예시
SELECT 데이터 조회 SELECT * FROM users WHERE id = 1;
INSERT 데이터 추가 INSERT INTO users (id, name) VALUES (1, '동엽');
UPDATE 데이터 수정 UPDATE users SET name = '요삐' WHERE id = 1;
DELETE 데이터 삭제 DELETE FROM users WHERE id = 1;

특징

  • 트랜잭션(Commit / Rollback) 가능
  • 실제 데이터에 영향을 미침

📙 3. DCL (Data Control Language) — 데이터 제어어

데이터베이스 접근 권한을 부여하거나 회수할 때 사용합니다.

명령어 설명 예시
GRANT 권한 부여 GRANT SELECT, INSERT ON users TO 'kim'@'localhost';
REVOKE 권한 회수 REVOKE INSERT ON users FROM 'kim'@'localhost';

특징

  • 보안 및 접근 제어를 담당
  • 사용자 단위로 접근 권한 설정 가능

📒 4. TCL (Transaction Control Language) — 트랜잭션 제어어

여러 DML 작업을 하나의 트랜잭션 단위로 묶어 관리합니다.

명령어 설명 예시
COMMIT 변경사항 확정 COMMIT;
ROLLBACK 이전 상태로 되돌림 ROLLBACK;
SAVEPOINT 중간 저장점 설정 SAVEPOINT sp1; / ROLLBACK TO sp1;

특징

  • 주로 DML 명령어와 함께 사용
  • 데이터 무결성을 보장하기 위해 필수적

✅ 한눈에 정리

분류 의미 주요 명령어 특징
DDL 데이터 구조 정의 CREATE, ALTER, DROP, TRUNCATE 자동 커밋, ROLLBACK 불가
DML 데이터 조작 SELECT, INSERT, UPDATE, DELETE 트랜잭션 가능
DCL 권한 제어 GRANT, REVOKE 접근 제어 담당
TCL 트랜잭션 제어 COMMIT, ROLLBACK, SAVEPOINT 데이터 무결성 보장

 

LIST

'BE > DB' 카테고리의 다른 글

[DB] 트랜잭션(Transaction)과 ACID 특성 정리  (0) 2025.10.29
[DB] Supabase 기본 세팅  (1) 2025.07.14
[DB] ERD Cloud 사용법  (1) 2025.07.11
[MariaDB] SQL 명령어 연습  (0) 2025.05.27
[MariaDB] 설치 및 실행  (0) 2025.05.27