반응형

📘 SQL 관리 구문 완벽 정리: DDL, DML, DCL, TCL 한눈에 이해하기!

SQLD, 실무, 면접에서도 자주 나오는 핵심 개념 바로 SQL의 관리 구문들입니다. 오늘은 SQL에서 명령어들을 기능별로 분류한 DDL, DML, DCL, TCL에 대해 아주 자세하게 정리해드릴게요. 이 글 하나로 완벽 정리 끝내세요! 💪


🧱 1. DDL (Data Definition Language)

데이터 정의어: 데이터베이스의 구조(스키마)를 정의하거나 수정할 때 사용하는 명령어입니다.

📌 주요 명령어

명령어 설명
CREATE 테이블, 인덱스, 뷰 등 객체 생성
ALTER 테이블 구조 수정 (컬럼 추가/삭제 등)
DROP 객체 삭제 (테이블, 인덱스 등)
TRUNCATE 테이블의 모든 데이터를 빠르게 삭제 (롤백 불가!)

✅ 특징

  • 자동 커밋이 발생함 (ROLLBACK 불가)
  • 객체 자체를 다루므로 주의해서 사용해야 함

🧾 2. DML (Data Manipulation Language)

데이터 조작어: 테이블에 저장된 데이터를 조회하거나 조작할 때 사용하는 구문입니다.

📌 주요 명령어

명령어 설명
SELECT 데이터 조회 (읽기 전용)
INSERT 새로운 데이터 삽입
UPDATE 기존 데이터 수정
DELETE 기존 데이터 삭제

✅ 특징

  • 트랜잭션 처리 대상 → COMMIT / ROLLBACK 가능
  • 실무에서 가장 많이 사용되는 SQL 구문

🛡️ 3. DCL (Data Control Language)

데이터 제어어: 데이터베이스 사용자나 권한을 관리/통제할 때 사용하는 구문입니다.

📌 주요 명령어

명령어 설명
GRANT 사용자에게 권한 부여
REVOKE 부여한 권한 회수

✅ 특징

  • 보안/접근 제어에 중요함
  • 사용자마다 데이터 접근을 제한할 수 있음

🔁 4. TCL (Transaction Control Language)

트랜잭션 제어어: DML 작업의 실행 결과를 확정 또는 취소할 때 사용하는 구문입니다.

📌 주요 명령어

명령어 설명
COMMIT 변경 사항을 DB에 영구 반영
ROLLBACK 변경 사항 취소, 이전 상태로 복원
SAVEPOINT 트랜잭션 내 중간 지점 설정 → 이후 해당 지점까지 ROLLBACK 가능

✅ 특징

  • 오직 DML과 함께 사용
  • DDL은 COMMIT이 자동으로 발생하므로 TCL의 대상이 아님

💡 예제 시나리오로 이해하기

-- 테이블 생성 (DDL)
CREATE TABLE member (
  id NUMBER PRIMARY KEY,
  name VARCHAR2(50)
);

-- 데이터 입력 (DML)
INSERT INTO member VALUES (1, '홍길동');

-- 변경 사항 저장 (TCL)
COMMIT;

-- 권한 부여 (DCL)
GRANT SELECT ON member TO user1;

📚 한눈에 정리 

분류 이름 주요 명령어 대상 특징
DDL 데이터 정의어 CREATE, ALTER, DROP, TRUNCATE 객체 자동 COMMIT 발생
DML 데이터 조작어 SELECT, INSERT, UPDATE, DELETE 데이터 트랜잭션 처리 가능
DCL 데이터 제어어 GRANT, REVOKE 사용자/권한 보안/접근 제어
TCL 트랜잭션 제어어 COMMIT, ROLLBACK, SAVEPOINT 트랜잭션 DML 작업 제어용

📝 SQLD 시험 대비 꿀팁!

  • TRUNCATE는 DDL이다! (DELETE와 다르게 ROLLBACK 안됨)
  • DCL은 사용자의 권한을 조정한다는 포인트 꼭 기억
  • TCL은 DML과 세트처럼 외우기 → COMMIT은 INSERT/UPDATE/DELETE 후 저장용

 

반응형

+ Recent posts