DDL(Data Definition Language)는 테이블을 생성(Create), 수정(Alter), 삭제(Drop) 등 데이터베이스의 구조를 정의하기 위한 작업들을 조작하는 언어이다.
1. CREATE
새로운 데이터베이스 객체(테이블, 인덱스, 뷰 등)를 생성할 때 사용한다.
초기 설계 단계에서 가장 많이 쓰인다.
CREATE TABLE students (
student_id NUMBER PRIMARY KEY,
name VARCHAR2(50) NOT NULL,
birth_date DATE
);
- students라는 테이블을 만들고
- 학번, 이름, 생년월일 컬럼을 정의
2. ALTER
기존 테이블의 구조를 수정할 때 사용한다.
열 추가·삭제, 자료형 변경, 테이블 이름 변경까지 가능하다.
주요 옵션
- ADD — 열 추가
ALTER TABLE employees ADD (
phone_number VARCHAR2(20),
hire_date DATE
);
- DROP COLUMN — 열 삭제
ALTER TABLE students DROP COLUMN email;
- MODIFY — 열의 자료형 변경
ALTER TABLE students MODIFY name VARCHAR2(100);
- RENAME COLUMN — 열 이름 변경
ALTER TABLE students RENAME COLUMN birth_date TO dob;
- RENAME TO — 테이블 이름 변경
ALTER TABLE students RENAME TO student_info;
3. DROP
테이블, 인덱스, 뷰 등을 완전히 삭제한다.
삭제하면 데이터까지 모두 사라지고 복구도 불가능하니 주의해야 한다.
DROP TABLE students;
students 테이블 자체와 그 안의 데이터 전부 제거
4. TRUNCATE
테이블의 모든 데이터를 삭제하지만, 구조는 유지한다.
DELETE보다 빠르지만, 롤백이 안 된다.
TRUNCATE TABLE students;
- students 테이블의 모든 행을 제거
- 테이블 구조는 그대로 남아 있어 다시 INSERT 가능
ㅇ DDL과 DML의 차이
구분 DDL DML
| 목적 | 데이터 구조 정의 | 데이터 조작 |
| 예시 | CREATE, ALTER, DROP, TRUNCATE | INSERT, UPDATE, DELETE, SELECT |
| 트랜잭션 | 자동 COMMIT → 롤백 불가 | 명시적 COMMIT → 롤백 가능 |
'DBMS > 개념' 카테고리의 다른 글
| 06_ DB의 연산자 (0) | 2025.09.19 |
|---|---|
| 05_ DML(데이터 조작어) (0) | 2025.09.18 |
| 📚03_ DBMS의 자료형 (0) | 2025.09.16 |
| 02_ DB와 SQL (0) | 2025.09.15 |
| ❓01_ DBMS란? (0) | 2025.09.13 |