본문으로 건너뛰기
SQL 기초집LESSON 04

CREATE TABLE과 제약 조건

난이도입문 → 초급
예상 시간30분
선수지식이전 강의

4강. CREATE TABLE과 제약 조건

1. 이번 강의에서 해결할 문제

애플리케이션 검증만 믿으면 다른 도구나 버그가 잘못된 값을 저장할 수 있습니다. 데이터베이스 스키마 자체가 최소 규칙을 지키게 합니다.

2. 학습 목표

3. 핵심 개념

제약 조건은 모든 입력 경로에 적용되는 데이터 규칙입니다. 기본 키는 행을 식별하고 UNIQUE는 후보 키의 중복을 막습니다. NOT NULL은 누락, CHECK는 값의 도메인을 제한합니다.

4. 단계별 SQL 예시

대상 테이블: players, games
파일 경로: C:\dev\game-ranking-db\sql\04-schema.sql

sql/04-schema.sql
CREATE TABLE IF NOT EXISTS players (
player_id INTEGER PRIMARY KEY,
username TEXT NOT NULL UNIQUE,
region TEXT NOT NULL CHECK (region IN ('KR', 'JP', 'NA', 'EU')),
created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
) STRICT;

CREATE TABLE IF NOT EXISTS games (
game_id INTEGER PRIMARY KEY,
mode TEXT NOT NULL CHECK (mode IN ('ranked', 'normal')),
started_at TEXT NOT NULL,
duration_seconds INTEGER NOT NULL CHECK (duration_seconds > 0)
) STRICT;
PowerShell · 실행 순서
sqlite3 .\data\game_ranking.db ".read .\sql\04-schema.sql"
sqlite3 .\data\game_ranking.db ".schema players"
sqlite3 .\data\game_ranking.db ".schema games"

5. 쿼리가 동작하는 이유

SQLite의 INTEGER PRIMARY KEY는 rowid의 별칭으로 자동 정수 키를 생성할 수 있습니다. DEFAULT는 INSERT에서 열을 생략할 때 사용됩니다. CHECK는 각 행이 저장되기 전에 참인지 검사합니다.

6. 자주 하는 실수와 안전한 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

CREATE TABLE과 제약 조건 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“CREATE TABLE과 제약 조건”에서 오류나 데이터 손실을 줄이는 선택은 무엇인가요?
  2. 문제 2‘PostgreSQL에서도 INTEGER PRIMARY KEY가 자동 증가한다고 가정’ 상태에 관한 “CREATE TABLE과 제약 조건” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

4강. CREATE TABLE과 제약 조건 미완료 상태