SQL 기본 및 활용

28. DDL·제약조건 — SQLD, PK vs UNIQUE의 NULL과 자동 커밋

CBT 전자문제집 편집팀
#SQLD#DDL#제약조건#PRIMARYKEY#UNIQUE#CHECK

DDL(Data Definition Language) 은 테이블 같은 객체의 구조를 정의하는 명령입니다. CREATE(생성)·ALTER(변경)·DROP(삭제)·TRUNCATE(비우기)가 있고, 구조를 만들 때 제약조건(Constraint) 으로 데이터 무결성 규칙을 겁니다. 시험은 제약조건 구분PK vs UNIQUE의 NULL 차이를 가장 많이 묻습니다.

이 단원, 시험에서 어디에 나오나 (출제 비중)

  • 제2과목 「SQL 기본 및 활용」 = 40문항 · 80점. DDL은 개념 구분·오류 찾기 유형으로 출제됩니다.
  • 제약조건 5종의 역할UNIQUE의 NULL 허용이 오답을 가르는 포인트입니다. (단원별 문항수는 공개되지 않습니다 — 출처: KDATA 출제기준.)

출제 포인트 — 시험이 실제로 묻는 것

  1. 제약조건 5종PRIMARY KEY·FOREIGN KEY·UNIQUE·NOT NULL·CHECK (+DEFAULT)
  2. PK = UNIQUE + NOT NULL, 테이블당 1개UNIQUE는 NULL 허용 (최다 함정)
  3. ALTER(구조 변경) / DROP(구조 삭제) vs TRUNCATE(데이터만)
  4. DDL = 자동 커밋 — 롤백 불가 (TCL 단원과 연계)

① CREATE TABLE — 컬럼마다 무결성 규칙을 건다

회원 테이블 정의 예시: 회원번호는 PRIMARY KEY, 이름은 NOT NULL, 이메일은 UNIQUE, 등급은 CHECK, 부서코드는 FOREIGN KEY, 가입일은 DEFAULT SYSDATE 제약이 걸려 있다

그림 1. 컬럼마다 걸린 제약조건 — 무결성 규칙. (자작 도식)

CREATE TABLE 회원 (
  회원번호  NUMBER        PRIMARY KEY,               -- 유일 + NOT NULL
  이름      VARCHAR2(20)  NOT NULL,                  -- 필수
  이메일    VARCHAR2(50)  UNIQUE,                    -- 중복 불가(NULL은 허용)
  등급      VARCHAR2(10)  CHECK (등급 IN ('GOLD','SILVER')),
  부서코드  NUMBER        REFERENCES 부서(부서코드), -- FK(참조 무결성)
  가입일    DATE          DEFAULT SYSDATE            -- 기본값
);

② 제약조건 5종 — 역할 구분

제약
PRIMARY KEY행 유일 식별 = UNIQUE + NOT NULL, 테이블당 1개
FOREIGN KEY다른 테이블의 PK 참조(참조 무결성)
UNIQUE중복 금지 — 단, NULL은 허용
NOT NULLNULL 금지(필수 입력)
CHECK값의 조건(범위·목록) 검사

DEFAULT는 값을 안 넣었을 때 채울 기본값 설정으로, 무결성 제약은 아닙니다.

최다 함정: PRIMARY KEYNULL 불가, UNIQUENULL 허용입니다. "UNIQUE도 유일해야 하니 NULL 금지"라고 착각하기 쉽습니다. PK = UNIQUE + NOT NULL로 기억하면 구분이 끝납니다.

③ ALTER · DROP · TRUNCATE

ALTER TABLE 회원 ADD 전화 VARCHAR2(20);      -- 컬럼 추가
ALTER TABLE 회원 MODIFY 이름 VARCHAR2(30);   -- 자료형 변경
ALTER TABLE 회원 DROP COLUMN 전화;           -- 컬럼 삭제
DROP TABLE 회원;                             -- 테이블 자체 삭제(구조까지)
TRUNCATE TABLE 회원;                         -- 데이터만 전부 삭제(구조 유지)
  • DROP = 구조까지 삭제 / TRUNCATE = 데이터만 비우고 구조 유지(DDL이라 복구 불가) / DELETE = DML이라 COMMIT 전 복구 가능. (비교표는 DML 단원.)
  • CREATE·ALTER·DROP·TRUNCATE 모두 실행 즉시 자동 커밋 — 앞선 DML까지 확정되고 롤백이 통하지 않습니다. (원리는 TCL 단원.)

한 장 정리 (암기 카드)

  • 제약 5종: PK(=UNIQUE+NOT NULL·1개)·FK(참조)·UNIQUE(NULL 허용NOT NULL·CHECK. DEFAULT는 기본값.
  • ALTER 구조 변경 · DROP 구조 삭제 · TRUNCATE 데이터만(구조 유지).
  • DDL = 자동 커밋 — 롤백 불가, 앞선 DML까지 확정.

참고 출처

CBT 전자문제집 편집팀

자격증 개념과 기출 유형을 쉽게 정리합니다.

관련 글