1. DDL이란 무엇인가
DDL (Data Definition Language)은 데이터베이스 구조를 정의하는 SQL 명령어이다.
데이터 자체가 아니라 데이터를 저장하는 구조 (테이블, 스키마)를 생성하거나 변경하는 역할을 한다.
대표적인 DDL 명령어:
- CREATE
- ALTER
- DROP
- TRUNCATE
이 명령어들은 테이블 구조를 생성, 변경, 삭제하는 작업에 사용된다.
2. DDL에서 정의해야 하는 요소
테이블을 생성할 때 다음 요소들을 정의해야 한다.
| 요소 | 설명 |
| 테이블 이름 | 생성할 테이블 이름 |
| 컬럼 이름 | 테이블에 포함되는 속성 |
| 데이터 타입 | 컬럼의 데이터 타입 |
| 데이터 크기 | 컬럼의 저장 크기 |
| 제약조건 | 데이터 무결성 규칙 |
예시
CREATE TABLE MEMBER (
MEMBER_ID VARCHAR2(10),
NAME VARCHAR2(30),
AGE NUMBER
);
3. CREATE (테이블 생성)
CREATE 문은 새로운 테이블을 생성하는 명령어이다.
기본 구조
CREATE TABLE 테이블명 (
컬럼명 데이터타입 제약조건,
컬럼명 데이터타입 제약조건
);
예시
CREATE TABLE MEMBER (
MEMBER_ID VARCHAR2(10) PRIMARY KEY,
NAME VARCHAR2(30) NOT NULL,
AGE NUMBER
);
4. CREATE 작성 시 주의사항
- 테이블 이름은 유일해야 한다
- 컬럼 이름도 중복되면 안 된다
- 데이터 타입을 반드시 지정해야 한다
- 데이터 크기를 지정해야 한다
- 제약조건은 컬럼 뒤에 정의한다
5. 제약조건 (Constraints)
제약조건은 데이터 무결성을 보장하기 위한 규칙이다.
| 제약조건 | 설명 |
| PRIMARY KEY | 기본키 |
| FOREIGN KEY | 외래키 |
| UNIQUE | 중복 방지 |
| NOT NULL | NULL 금지 |
| CHECK | 특정 조건 검사 |
6. PRIMARY KEY
PRIMARY KEY는 테이블의 기본키를 정의하는 제약조건이다.
특징:
- NULL 불가능
- 중복 불가능
- 테이블당 하나만 존재
CREATE TABLE MEMBER (
MEMBER_ID NUMBER PRIMARY KEY,
NAME VARCHAR2(30)
);
7. FOREIGN KEY
FOREIGN KEY는 다른 테이블의 PRIMARY KEY를 참조하는 제약조건이다.
테이블 간 관계를 정의하는 역할을 한다.
CREATE TABLE ORDER_TABLE (
ORDER_ID NUMBER PRIMARY KEY,
MEMBER_ID NUMBER,
CONSTRAINT FK_MEMBER
FOREIGN KEY (MEMBER_ID)
REFERENCES MEMBER(MEMBER_ID)
);
8. UNIQUE
UNIQUE는 중복을 허용하지 않는 제약조건이다.
NULL 값은 허용한다.
EMAIL VARCHAR2(100) UNIQUE
9. NOT NULL
NOT NULL은 NULL 값을 허용하지 않는 제약조건이다.
NAME VARCHAR2(30) NOT NULL
10. CHECK
CHECK는 특정 조건을 만족하는 데이터만 입력되도록 제한하는 제약조건이다.
CHECK (GENDER IN ('M', 'F'))
11. ALTER (테이블 구조 변경)
ALTER 문은 이미 생성된 테이블 구조를 변경하는 명령어이다.
컬럼 추가
ALTER TABLE MEMBER
ADD AGE NUMBER;
컬럼 삭제
ALTER TABLE MEMBER
DROP COLUMN AGE;
컬럼 수정
ALTER TABLE MEMBER
MODIFY AGE NUMBER(3);
컬럼 이름 변경
ALTER TABLE MEMBER
RENAME COLUMN AGE TO MEMBER_AGE;
제약조건 추가
ALTER TABLE MEMBER
ADD CONSTRAINT PK_MEMBER PRIMARY KEY (MEMBER_ID);
12. DROP (테이블 삭제)
DROP은 테이블 자체를 삭제하는 명령어이다.
DROP TABLE MEMBER;
특징:
- 테이블 구조 삭제
- 데이터 삭제
- 복구 불가능
13. TRUNCATE (테이블 초기화)
TRUNCATE는 테이블 구조는 유지하고 데이터만 삭제하는 명령어이다.
TRUNCATE TABLE MEMBER;
특징:
- 빠른 삭제
- 롤백 불가능
- 로그 최소
14. DELETE vs TRUNCATE vs DROP 차이
| 구분 | DELETE | TRUNCATE | DROP |
| 종류 | DML | DDL | DDL |
| 데이터 삭제 | O | O | O |
| 테이블 구조 삭제 | X | X | O |
| WHERE 사용 | O | X | X |
| ROLLBACK | 가능 | 불가능 | 불가능 |
15. SQLD 시험 핵심 포인트
PRIMARY KEY 특징
- NULL 불가
- 중복 불가
- 테이블당 하나
UNIQUE 특징
- NULL 허용
- 중복 불가
반드시 숙지해야 할 항목:
- DELETE vs TRUNCATE vs DROP 차이
- ALTER 문 사용법
- FOREIGN KEY 제약조건
정리
DDL은 데이터베이스의 구조를 정의하는 SQL 명령어이다.
| 명령어 | 역할 |
| CREATE | 테이블 생성 |
| ALTER | 구조 변경 |
| DROP | 테이블 삭제 |
| TRUNCATE | 데이터 초기화 |
DDL은 데이터 자체가 아니라 데이터를 담는 구조를 관리하는 역할을 한다.
'SQLD 시험 대비' 카테고리의 다른 글
| SQLD DCL (0) | 2026.03.07 |
|---|---|
| SQLD DML / TCL (0) | 2026.03.05 |
| SQLD 함정 문제 TOP 20 (0) | 2026.03.05 |
| SQLD 정규표현식 (0) | 2026.03.04 |
| SQLD PIVOT / UNPIVOT (0) | 2026.03.03 |