SQL DDL과 DCL - 테이블 정의와 권한 관리

DBSQLDDLDCL
읽는데 7분 소요
처음 쓰여진 날: 2026-03-30
마지막 수정일: 2026-03-30
조회수: 0

요약

SQL의 3대 분류(DDL, DML, DCL)를 알아보고, 테이블을 생성/수정/삭제하는 DDL과 권한을 부여/회수하는 DCL을 정보처리기사 실기 기출문제와 함께 학습합니다.

SQL 분류 핵심 정리

SQL(Structured Query Language)은 데이터베이스1를 다루기 위한 언어입니다. 크게 3가지로 분류됩니다.

분류이름주요 명령어설명
DDL데이터 정의어CREATE, ALTER, DROP, TRUNCATE테이블 구조를 정의/수정/삭제
DML데이터 조작어SELECT, INSERT, UPDATE, DELETE데이터를 조회/추가/수정/삭제
DCL데이터 제어어GRANT, REVOKE사용자 권한2을 부여/회수


DDL (Data Definition Language) - 데이터 정의어

DDL은 테이블, 뷰3 등 데이터베이스 구조(스키마)를 만들고, 바꾸고, 없애는 명령어입니다.

아래는 DDL에서 사용 가능한 4가지 명령어입니다. 각 명령어의 역할과 문법을 순서대로 살펴봅니다.

CREATE TABLE - 테이블 생성

sql
코드 하이라이팅 중...

여기서 컬럼명4은 테이블의 각 열 이름, 데이터타입5은 그 열에 저장할 값의 형식, [제약조건]6은 입력 값에 적용할 규칙입니다. [ ]로 감싸진 항목은 생략 가능한 선택 요소입니다.

자주 사용되는 제약조건:

제약조건설명
PRIMARY KEY기본키 (NULL 불가, 중복 불가, 테이블당 1개)
FOREIGN KEY외래키 (다른 테이블의 기본키를 참조)
NOT NULLNULL7 값 입력 불가
UNIQUE중복 값 입력 불가 (NULL은 허용, 테이블에 여러 개 가능)
CHECK입력 값의 조건 제한
DEFAULT값 미입력 시 자동으로 채울 기본값 설정

예시:

sql
코드 하이라이팅 중...

ALTER TABLE - 테이블 수정

테이블의 구조(컬럼)를 변경할 때 사용합니다. ADD는 새 컬럼을 추가, MODIFY는 기존 컬럼의 데이터타입이나 제약조건을 변경, DROP COLUMN은 컬럼을 삭제합니다.

sql
코드 하이라이팅 중...

DROP - 테이블/뷰 삭제

테이블이나 뷰를 구조째로 삭제합니다. 테이블에 저장된 데이터도 모두 함께 사라집니다.

sql
코드 하이라이팅 중...

CASCADE vs RESTRICT:

CASCADERESTRICT는 삭제 대상 테이블이나 뷰를 다른 테이블(또는 뷰)이 참조하고 있을 때 어떻게 처리할지를 지정합니다. 옵션을 생략하면 RESTRICT가 적용됩니다.

옵션설명
CASCADE해당 테이블이나 뷰를 참조하는 다른 테이블·뷰도 함께 삭제
RESTRICT다른 테이블·뷰가 참조하고 있으면 삭제 거부 (옵션 생략 시 기본 적용)

시나리오 예시:

직원 테이블의 회사코드 컬럼이 회사 테이블의 기본키를 외래키로 참조하고 있는 상황을 가정합니다.

sql
코드 하이라이팅 중...

TRUNCATE - 테이블 데이터 전체 삭제

테이블 구조는 유지하면서 모든 데이터(행)만 삭제합니다.

sql
코드 하이라이팅 중...

TRUNCATE 전/후 비교:

TRUNCATE 전 학생 테이블:

학번이름학년
20241001김철수1
20241002이영희2

TRUNCATE 후 학생 테이블:

학번이름학년
(행 없음)

컬럼 구조(학번, 이름, 학년)는 그대로 남아 있고, 저장된 데이터만 모두 사라집니다.



DCL (Data Control Language) - 데이터 제어어

데이터베이스에는 여러 사용자(DBA, 일반 사용자, 애플리케이션 계정 등)가 접근합니다. 사용자마다 허용할 작업 범위가 다르므로, 권한을 세밀하게 제어할 필요가 있습니다. DCL은 이러한 사용자 권한을 부여하거나 회수하는 명령어입니다.

GRANT - 권한 부여

sql
코드 하이라이팅 중...

권한 종류:

권한설명
SELECT조회 권한
INSERT삽입 권한
UPDATE수정 권한
DELETE삭제 권한
ALL모든 권한

예시:

sql
코드 하이라이팅 중...

REVOKE - 권한 회수

sql
코드 하이라이팅 중...

예시:

sql
코드 하이라이팅 중...

정보처리기사 실기 대비 문제



Footnotes

  1. 데이터를 체계적으로 저장하고 관리하는 저장소. 여러 사람이 동시에 접근할 수 있으며, 데이터 중복과 불일치를 줄이는 것을 목표로 합니다.

  2. 어떤 사용자가 어떤 테이블에 대해 SELECT(조회), INSERT(삽입), UPDATE(수정), DELETE(삭제) 등을 수행할 수 있는지를 결정하는 접근 허가 단위입니다.

  3. 하나 이상의 테이블을 기반으로 만든 가상 테이블입니다. 실제 데이터를 저장하지 않고, 조회 쿼리를 저장해 두었다가 필요할 때 테이블처럼 사용합니다.

  4. 테이블의 각 열(세로 방향)을 나타내는 이름입니다. 예: 학번, 이름, 학년.

  5. 컬럼에 저장할 값의 종류와 형식을 지정합니다. INT는 정수, VARCHAR(n)은 최대 n자의 가변 문자열입니다.

  6. 컬럼에 입력 가능한 값을 제한하는 규칙입니다. PRIMARY KEY, NOT NULL, UNIQUE, CHECK, DEFAULT 등이 있습니다.

  7. 아직 값이 입력되지 않았음을 나타내는 특수한 상태입니다. 0이나 빈 문자열("")과 다르며, "모른다" 또는 "해당 없음"을 의미합니다.


관련 글

(20개)
학습 경로
범위: 1단계