[시나공] DDL · DCL · 트랜잭션 제어 정리 (CREATE / ALTER / DROP / GRANT / REVOKE / COMMIT / ROLLBACK)
2026. 3. 24. 16:34ㆍCertifications/정보처리기사 실기
1️⃣ DDL (Data Definition Language)
✅ 개념
- 데이터베이스의 구조를 정의하거나 변경하는 명령어
- 데이터 객체의 생성 / 수정 / 삭제에 사용
🔹 주요 대상
- Schema
- Table
- View
- Index
- Domain
🎯 포인트
- DDL = DB 구조 정의
- CREATE / ALTER / DROP
✅ DDL 명령어 종류
| 명령어 | 기능 |
|---|---|
| CREATE | SCHEMA, TABLE, VIEW, INDEX 등을 생성 |
| ALTER | 테이블 구조 또는 객체 정의를 변경 |
| DROP | SCHEMA, TABLE, VIEW, INDEX 등의 객체 삭제 |
2️⃣ CREATE TABLE
✅ 개념
- 새로운 테이블을 정의하는 SQL 명령어
✅ 기본 문법
CREATE TABLE 테이블명 (
속성명 데이터타입 [DEFAULT 기본값] [NOT NULL],
...
PRIMARY KEY(속성명),
UNIQUE(속성명),
FOREIGN KEY(속성명)
REFERENCES 참조테이블(속성명)
[ON DELETE 옵션]
[ON UPDATE 옵션],
CONSTRAINT 제약조건명 CHECK(조건)
);
✅ 주요 제약 조건
🔹 PRIMARY KEY
- 테이블의 기본키 지정
- NULL 허용 X
- 중복 허용 X
🔹 UNIQUE
- 대체키 지정
- 중복값 허용 X
🔹 FOREIGN KEY
- 다른 테이블 참조
FOREIGN KEY(속성)
REFERENCES 테이블(속성)
🔹 ON DELETE 옵션
| 옵션 | 설명 |
|---|---|
| NO ACTION |
참조 테이블에 변화가 있어도 아무 동작을 수행하지 않음 |
| CASCADE |
참조 테이블의 튜플이 삭제되면 관련 튜플도 함께 삭제 |
| SET NULL |
참조 테이블의 변화가 발생하면 해당 속성 값을 NULL로 변경 |
| SET DEFAULT |
참조 테이블의 변화가 발생하면 해당 속성 값을 기본값으로 변경 |
🔹 ON UPDATE 옵션
- 참조 속성 값이 변경될 때 동작 지정
🔹 CHECK
- 특정 조건을 만족해야 데이터 저장 가능
CHECK(조건)
3️⃣ CREATE VIEW
✅ 개념
뷰(View)를 정의하는 SQL
하나 이상의 테이블을 기반으로 생성되는
가상 테이블
✅ 문법
CREATE VIEW 뷰명(속성명, ...)
AS SELECT문;
✅ 예시
CREATE VIEW 안산고객(성명, 전화번호)
AS
SELECT 성명, 전화번호
FROM 고객
WHERE 주소 = '안산시';
4️⃣ CREATE INDEX
✅ 개념
- 검색 속도를 향상시키기 위한 데이터 구조
✅ 문법
CREATE INDEX 인덱스명
ON 테이블명(속성명);
✅ UNIQUE INDEX
CREATE UNIQUE INDEX 인덱스명
ON 테이블명(속성명);
- 중복 값 허용하지 않음
5️⃣ ALTER TABLE
✅ 개념
- 테이블 구조 변경
✅ 문법
🔹 속성 추가
ALTER TABLE 테이블명
ADD 속성명 데이터타입;
🔹 속성 수정
ALTER TABLE 테이블명
ALTER 속성명 데이터타입;
🔹 속성 삭제
ALTER TABLE 테이블명
DROP COLUMN 속성명;
6️⃣ DROP
✅ 개념
- 데이터베이스 객체 삭제
✅ 문법
DROP TABLE 테이블명;
DROP VIEW 뷰명;
DROP INDEX 인덱스명;
DROP SCHEMA 스키마명;
✅ 옵션
🔹 CASCADE
- 참조 객체까지 함께 삭제
🔹 RESTRICT
- 참조 객체가 있으면 삭제 불가
7️⃣ DCL (Data Control Language)
✅ 개념
- 데이터베이스 접근 권한 관리 명령어
✅ 주요 명령어
| 명령어 | 기능 |
|---|---|
| GRANT | 데이터베이스 객체에 대한 사용 권한을 사용자에게 부여 |
| REVOKE | 사용자에게 부여된 데이터베이스 권한을 취소 |
8️⃣ GRANT
✅ 개념
- 사용자에게 권한 부여
✅ 문법
GRANT 권한
ON 객체
TO 사용자
[WITH GRANT OPTION];
🔹 WITH GRANT OPTION
- 권한 받은 사용자가 다른 사용자에게 권한 부여 가능
✅ 예시
GRANT ALL
ON 고객
TO NABI
WITH GRANT OPTION;
9️⃣ REVOKE
✅ 개념
- 사용자 권한 취소
✅ 문법
REVOKE 권한
ON 객체
FROM 사용자;
✅ 예시
REVOKE UPDATE
ON 고객
FROM STAR;
🔟 트랜잭션 제어
트랜잭션 수행 결과를 확정하거나 취소하는 명령어
✅ COMMIT
- 트랜잭션 수행 결과를 DB에 영구 반영
COMMIT;
✅ ROLLBACK
- 트랜잭션 수행 결과 취소
ROLLBACK;
📊 시험 포인트 정리
🔥 1. DDL 구분 문제
- DDL = DB 구조 정의
- CREATE
- ALTER
- DROP
🔥 2. DCL 구분
- DCL = 권한 관리
- GRANT
- REVOKE
🔥 3. 트랜잭션 제어
| 명령어 | 의미 |
|---|---|
| COMMIT | 수행된 트랜잭션의 결과를 데이터베이스에 영구적으로 반영 |
| ROLLBACK | 수행된 트랜잭션의 결과를 취소하고 이전 상태로 복구 |
🔥 4. 외래키 옵션 문제
| 옵션 | 의미 |
|---|---|
| CASCADE | 참조된 튜플이 삭제되면 관련된 튜플도 함께 삭제 |
| SET NULL | 참조된 튜플이 삭제되면 해당 속성 값을 NULL로 변경 |
| NO ACTION | 아무 동작을 수행하지 않음 |
🔥 5. ALTER TABLE 문제
자주 출제되는 유형
ALTER TABLE 테이블명
ADD 컬럼명 타입;
🔥 6. SQL 유형 구분 문제
| 유형 | 명령어 |
|---|---|
| DDL | CREATE, ALTER, DROP |
| DML | SELECT, INSERT, UPDATE, DELETE |
| DCL | GRANT, REVOKE |
| TCL | COMMIT, ROLLBACK |

2025 시나공 퀵이지 정보처리기사 실기 단기완성
(저자: 강윤석, 김용갑, 김우경, 김종일 | 출판사: 길벗)
※ 본 글은 위 교재를 참고하여 학습 목적으로 재정리한 내용입니다.
'Certifications > 정보처리기사 실기' 카테고리의 다른 글
| [시나공] SQL 심화 정리 (JOIN / 서브쿼리 / DML / 트리거) (0) | 2026.03.24 |
|---|---|
| [시나공] SQL 기본 정리 (SELECT / WHERE / GROUP BY / 집계함수 / UNION) (0) | 2026.03.24 |
| [시나공] 테스트 오라클·테스트 하네스·순환 복잡도 정리 (정적·동적 분석 포함) (0) | 2026.03.05 |
| [시나공] 개발 단계별 테스트 전략 총정리 (V-모델 기반) (0) | 2026.03.05 |
| [시나공] 테스트 유형 정리 (화이트박스·블랙박스 핵심 총정리) (0) | 2026.03.04 |