하나의 언어, 네 가지 역할

SQL은 DBMS에 보내는 요청을 목적별로 묶어 읽으면 훨씬 빠르게 이해됩니다

관계형 DBMS는 모두 SQL을 쓰지만, 실제 요청의 성격은 구조 정의, 데이터 조작, 권한 제어, 트랜잭션 제어로 나뉩니다.

공통 대상 DBMS에 요청

네 가지 분류는 서로 다른 언어가 아니라 같은 SQL 안에서 담당 역할이 다른 묶음입니다. 먼저 어떤 역할의 요청인지 파악하면 명령을 외우기보다 의미를 이해하게 됩니다.

DDL
어떻게 저장할까?

데이터가 들어갈 구조를 만든다

테이블, 컬럼, 제약 조건처럼 저장의 뼈대를 정의합니다. 이후의 조회와 변경은 이 구조 위에서 이루어집니다.

CREATE ALTER DROP
DML
무슨 데이터를 바꿀까?

저장된 행을 읽고 바꾼다

실제 업무 데이터에 접근하는 영역입니다. 조회, 입력, 수정, 삭제처럼 눈에 보이는 상태 변화가 여기서 일어납니다.

SELECT INSERT UPDATE DELETE
DCL
누가 할 수 있을까?

접근 가능한 사람과 범위를 정한다

같은 데이터라도 모든 사용자가 같은 권한을 가지면 안 됩니다. DCL은 작업 가능 범위를 나눠 일관성과 보안을 지킵니다.

GRANT REVOKE
TCL
변경을 확정할까?

여러 변경을 하나의 거래처럼 묶는다

작업 결과를 최종 반영할지 되돌릴지 결정합니다. 중간 저장점을 두면 실패 시 필요한 지점까지만 복구할 수 있습니다.

COMMIT ROLLBACK SAVEPOINT

정리: SQL을 볼 때 먼저 “구조를 정하는가, 데이터를 다루는가, 권한을 관리하는가, 트랜잭션을 마무리하는가”를 구분하면 DBMS가 무엇을 하려는지 바로 읽힙니다.