반응형
📘 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 후 저장용
반응형