데이터 정의 언어

DDL은 행 데이터보다 저장 규칙을 바꾸고, 그 결과를 카탈로그에 남깁니다

CREATE, ALTER, DROP은 테이블과 제약 조건 같은 스키마 구조를 바꾸는 명령입니다. 그래서 실행 결과가 시스템 카탈로그에 메타데이터로 기록됩니다.

DDL 실행

데이터를 조회하거나 한 행씩 바꾸는 대신, 앞으로 저장할 규칙을 정의합니다.

무엇이 바뀌는가
테이블 컬럼 제약 조건 인덱스
시스템 카탈로그 반영

DBMS는 구조 변경 결과를 데이터 사전에 기록하고, 이후 SQL은 이 메타데이터를 기준으로 동작합니다.

명령
무엇이 바뀌나
운영 의미
구조 생성 CREATE TABLE
새 스키마 객체를 만든다
테이블, 뷰, 인덱스처럼 앞으로 데이터를 담을 틀이 추가됩니다.
카탈로그에 새 정의가 등록되어, 그 순간부터 DBMS가 이 구조를 사용할 수 있습니다.
구조 수정 ALTER TABLE
기존 구조를 조정한다
컬럼 추가, 타입 변경, 제약 조건 수정처럼 저장 규칙 자체를 바꿉니다.
업무 요구가 바뀌어도 데이터를 담는 방식만 갱신하면 되므로, 행 단위 DML과 역할이 분리됩니다.
구조 삭제 DROP TABLE
객체 정의 자체를 없앤다
테이블이나 인덱스의 스키마 정보가 제거됩니다.
삭제 대상은 데이터 몇 행이 아니라 객체 전체입니다. 카탈로그에서도 해당 정의가 사라집니다.
예외처럼 보이는 DDL TRUNCATE TABLE
구조는 두고, 모든 행만 한꺼번에 비운다
테이블 정의는 유지한 채 내용을 전체 삭제합니다. 그래서 DELETE와 목적이 다릅니다.
조건 없이 전체를 비우며 로그를 최소화해 빠릅니다. 대신 롤백이 어렵고, 안전한 행 단위 삭제 명령으로 보기는 어렵습니다.