SQL 명령어는 크게 4가지로 분류됩니다. 이 분류를 정확히 이해하는 것이 SQLD 시험의 기본입니다.
데이터베이스의 구조, 즉 스키마나 객체를 정의, 변경, 삭제하는 명령어입니다.
CREATE: 객체(테이블, 뷰, 인덱스 등) 생성ALTER: 객체 구조 변경DROP: 객체 삭제TRUNCATE: 테이블의 모든 데이터 삭제 (구조는 남김)COMMIT 됩니다.ROLLBACK으로 되돌릴 수 없습니다.자동 COMMIT, ROLLBACK 불가 라는 키워드가 나오면 DDL입니다.DDL = Define (정의한다)테이블 안에 있는 데이터를 조회, 삽입, 수정, 삭제하는 명령어입니다.
SELECT: 데이터 조회INSERT: 데이터 삽입UPDATE: 데이터 수정DELETE: 데이터 삭제COMMIT이나 ROLLBACK으로 작업을 확정하거나 취소할 수 있습니다.)데이터 조작, 트랜잭션 제어 가능 이라는 키워드가 나오면 DML입니다.DML = Manipulate (조작한다)데이터베이스에 대한 접근 권한과 보안을 제어하는 명령어입니다.
GRANT: 사용자에게 권한 부여REVOKE: 사용자로부터 권한 회수권한 부여, 권한 회수 라는 키워드가 나오면 DCL입니다.DCL = Control (제어한다)트랜잭션의 결과를 확정하거나 취소하는 명령어입니다.
COMMIT: 트랜잭션의 변경 사항을 영구적으로 저장ROLLBACK: 트랜잭션 시작점으로 되돌리기SAVEPOINT: 트랜잭션 내의 임시 저장 지점 설정COMMIT이므로 TCL로 제어할 수 없습니다.COMMIT, ROLLBACK 이라는 키워드가 나오면 TCL입니다.TCL = Transaction (트랜잭션)| 구분 | 역할 | 주요 명령어 | 핵심 특징 | 시험 포인트 |
|---|---|---|---|---|
| DDL | 구조 정의 | CREATE, ALTER, DROP | 자동 COMMIT, ROLLBACK 불가 | 구조, 정의, DROP, TRUNCATE |
| DML | 데이터 조작 | SELECT, INSERT, DELETE | COMMIT/ROLLBACK 가능 | 데이터, 조작, DELETE |
| DCL | 권한 제어 | GRANT, REVOKE | 보안, 권한 관리 | 권한 부여/회수 |
| TCL | 트랜잭션 제어 | COMMIT, ROLLBACK | DML 작업 제어 | 트랜잭션, COMMIT, ROLLBACK |
CREATE, ALTER, DROP → 구조를 다루는 DDLSELECT, INSERT, UPDATE, DELETE → 데이터를 다루는 DMLGRANT, REVOKE → 권한을 다루는 DCLCOMMIT, ROLLBACK → 트랜잭션을 다루는 TCLTRUNCATE (DDL) vs DELETE (DML) 차이점 묻는 문제 자주 출제!1. 다음 중 DDL에 해당하지 않는 명령어는?
① CREATE
② ALTER
③ DELETE
④ DROP
2. 다음 설명에 해당하는 SQL 명령어는?
"테이블 데이터를 전부 삭제하며, 조건 지정은 불가능하고 ROLLBACK도 불가능하다."
① DELETE
② TRUNCATE
③ DROP
④ UPDATE
3. 데이터베이스 사용자의 권한을 회수할 때 사용하는 명령어는?
① GRANT
② REVOKE
③ ALTER
④ DENY
4. 트랜잭션을 부분적으로 저장하고 필요시 그 지점까지 복구할 수 있는 명령어는?
① SAVEPOINT
② ROLLBACK
③ COMMIT
④ CHECKPOINT
5. 다음 설명이 의미하는 SQL 분류는?
"데이터를 삽입/수정/삭제할 수 있으며, COMMIT/ROLLBACK이 가능하다."
① DDL
② DML
③ DCL
④ TCL
DELETE)CREATE, ALTER, DROP은 DB 객체의 구조를 변경하는 DDL입니다. DELETE는 테이블의 데이터를 삭제하는 DML입니다.TRUNCATE)TRUNCATE는 DDL 명령어이므로 ROLLBACK이 불가능하며, WHERE 절을 사용할 수 없어 테이블의 모든 데이터를 삭제합니다.REVOKE)REVOKE는 사용자에게 부여한 권한을 회수하는 DCL 명령어입니다. GRANT는 권한을 부여하는 명령어입니다.SAVEPOINT)SAVEPOINT는 트랜잭션 내에서 임시 저장 지점을 설정하여, 문제가 발생했을 때 그 지점까지만 ROLLBACK할 수 있게 합니다.INSERT, UPDATE, DELETE와 같은 데이터 조작 명령어는 COMMIT과 ROLLBACK으로 트랜잭션을 제어할 수 있는 DML에 속합니다.