[시나공] DDL · DCL · 트랜잭션 제어 정리 (CREATE / ALTER / DROP / GRANT / REVOKE / COMMIT / ROLLBACK)

2026. 3. 24. 16:34Certifications/정보처리기사 실기

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 시나공 퀵이지 정보처리기사 실기 단기완성
(저자: 강윤석, 김용갑, 김우경, 김종일 | 출판사: 길벗)

※ 본 글은 위 교재를 참고하여 학습 목적으로 재정리한 내용입니다.