반응형
"SQL 문법 중 CREATE는 DDL이고 SELECT는 DML이라는데, 명령어 분류를 쉽게 암기하는 방법이 있을까요?"
"데이터베이스를 조회하고 수정하는 기본 명령어부터 권한과 트랜잭션을 제어하는 명령어까지 한눈에 파악하고 싶으신가요?"
SQL(Structured Query Language)은 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 구축, 관리, 조회하기 위해 사용하는 표준 구조화 질의 언어입니다. SQL은 역할과 목적에 따라 DDL, DML, DCL, TCL의 4가지 주요 명령어 그룹으로 나뉩니다.
이번 글에서는 각 명령어 그룹의 역할과 대표 명령어, 핵심 사용법을 시험 및 실무 필수 포인트 위주로 완벽하게 정리해 드립니다!
1. SQL 명령어의 4대 분류 개요
SQL 명령어는 처리하는 대상(데이터베이스 객체 구조, 실제 데이터 레코드, 사용자 권한, 트랜잭션)에 따라 명확하게 구분됩니다.

2. 영역별 상세 개념 및 핵심 명령어
1.1. DDL (Data Definition Language - 데이터 정의어):
- 개념: 테이블, 뷰, 인덱스 등 데이터베이스 객체의 구조를 생성, 변경, 삭제할 때 사용하는 명령어입니다.
- 특징: 실행 즉시 데이터베이스에 자동 반영(Auto Commit)됩니다.
- 주요 명령어:
- CREATE: 테이블이나 인덱스 등 새로운 객체 생성
- ALTER: 기존 객체의 구조 변경 (컬럼 추가, 수정 등)
- DROP: 객체 및 데이터 전체를 완전 삭제 (복구 불가)
- TRUNCATE: 테이블의 모든 데이터(행)를 삭제하고 저장 공간을 초기화
2.2. DML (Data Manipulation Language - 데이터 조작어):
- 개념: 테이블 내의 실제 데이터 레코드를 조회, 추가, 수정, 삭제할 때 사용하는 명령어입니다.
- 특징: 실행 후 TCL 명령어(COMMIT, ROLLBACK)를 통해 변경 사항을 확정하거나 취소할 수 있습니다.
- 주요 명령어:
- SELECT: 테이블에서 데이터 조회 (DQL로 별도 분류되기도 함)
- INSERT: 테이블에 새로운 행(데이터) 추가
- UPDATE: 기존 데이터의 값 수정
- DELETE: 조건에 맞는 특정 데이터 행 삭제
3.3. DCL (Data Control Language - 데이터 제어어):
- 개념: 데이터의 보안, 무결성, 사용자 권한 및 접근 제어를 위해 사용하는 명령어입니다.
- 주요 명령어:
- GRANT: 사용자에게 특정 데이터베이스 작업 권한 부여
- REVOKE: 사용자에게 부여했던 권한을 회수
4.4. TCL (Transaction Control Language - 트랜잭션 제어어):
- 개념: DML 작업으로 실행된 트랜잭션의 결과(변경 사항)를 확정하거나 원상 복구할 때 사용합니다.
- 주요 명령어:
- COMMIT: 작업 결과를 데이터베이스에 영구적으로 반영
- ROLLBACK: 작업 중 오류 발생 시 마지막 COMMIT 시점으로 원상 복구
- SAVEPOINT: 트랜잭션 내에 복구 지점 설정
3. 자주 헷갈리는 삭제 명령어 비교: DROP vs TRUNCATE vs DELETE
실무 및 시험에서 가장 빈번하게 비교되는 3가지 데이터 삭제 명령어의 차이점입니다.
[ 데이터 삭제 명령어 비교 구조 ]
DROP TABLE : [ 테이블 구조 + 모든 데이터 ] 완전 제거
TRUNCATE TABLE : [ 테이블 구조 ] 유지 + [ 모든 데이터 ] 즉시 삭제 및 공간 반환
DELETE FROM : [ 테이블 구조 ] 유지 + [ 조건에 맞는 데이터 ] 선택 삭제 (ROLLBACK 가능)
| 구분 | DROP | TRUNCATE | DELETE |
| 분류 | DDL | DDL | DML |
| 삭제 대상 | 테이블 구조 + 데이터 전체 | 데이터 전체만 삭제 | 조건에 맞는 데이터 행 |
| 속도 | 가장 빠름 | 매우 빠름 | 상대적으로 느림 |
| 복구 가능 여부 | 복구 불가 (Auto Commit) | 복구 불가 (Auto Commit) | ROLLBACK 가능 |
| 로그 저장 | 거의 없음 | 최소한의 로그 | 행 단위로 로그 저장 |
💡 한눈에 보는 SQL 명령어 분류 및 예시 코드 (시험 필수!)
| 분류 | 명령어 | 기본 SQL 예시 코드 |
| DDL | CREATE | CREATE TABLE 학생 (학번 INT PRIMARY KEY, 이름 VARCHAR(20)); |
| DDL | ALTER | ALTER TABLE 학생 ADD 전화번호 VARCHAR(15); |
| DDL | DROP | DROP TABLE 학생; |
| DML | SELECT | SELECT 이름, 학과 FROM 학생 WHERE 평점 >= 3.5; |
| DML | INSERT | INSERT INTO 학생 VALUES (2026001, '홍길동'); |
| DML | UPDATE | UPDATE 학생 SET 전화번호 = '010-1234-5678' WHERE 학번 = 2026001; |
| DML | DELETE | DELETE FROM 학생 WHERE 학번 = 2026001; |
| DCL | GRANT | GRANT SELECT ON 학생 TO USER1; |
| TCL | COMMIT | COMMIT; |
📌 핵심 기출 포인트 체크
- 명령어 그룹 구분: CREATE, ALTER, DROP, TRUNCATE는 DDL, SELECT, INSERT, UPDATE, DELETE는 DML이라는 구분을 정확히 암기하세요.
- 복구 가능성: DDL(DROP, TRUNCATE)은 실행 시 즉시 커밋되어 ROLLBACK이 불가능하지만, DML(DELETE)은 ROLLBACK이 가능합니다.
- DCL 권한 부여: 사용자에게 조회 권한을 부여할 때는 GRANT SELECT, 회수할 때는 REVOKE SELECT를 사용합니다.
반응형
'전공과목 > 데이터베이스' 카테고리의 다른 글
| [데이터베이스] 트랜잭션(Transaction)의 개념, ACID 성질 및 동시성 제어 완벽 정리 (0) | 2026.09.05 |
|---|---|
| [데이터베이스] SQL 고급 문법: 다양한 JOIN 종류와 GROUP BY, HAVING 절 완벽 정리 (0) | 2026.09.05 |
| [데이터베이스] 정규화(Normalization) 2: BCNF, 4NF, 5NF 및 역정규화(De-normalization) 완벽 정리 (0) | 2026.09.04 |
| [데이터베이스] 정규화(Normalization) 1: 정규화의 필요성과 이상 현상, 1NF·2NF·3NF 단계별 분해 완벽 정리 (0) | 2026.09.04 |
| [데이터베이스] 관계대수: 순수 관계 연산자와 일반 집합 연산자 개념 및 기출 풀이 완벽 정리 (0) | 2026.09.04 |