PostgreSQL스키마와 제약

CREATE TABLE 기본

열 이름, 자료형, 기본값, 제약 조건이 모여 테이블 구조를 만드는 CREATE TABLE의 핵심 문법을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

text
CREATE TABLE posts (
  id BIGSERIAL PRIMARY KEY,
  title TEXT NOT NULL,
  published BOOLEAN NOT NULL DEFAULT false,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

설명

  • CREATE TABLE은 테이블 이름과 각 열의 자료형, 기본값, 제약 조건을 한 번에 선언하는 문법입니다.
  • 열 정의에서 가장 먼저 생각할 것은 "이 값이 어떤 종류의 데이터인가"입니다. 정수, 문자열, 불리언, 날짜/시간을 상황에 맞게 고릅니다.
  • NOT NULL, DEFAULT, PRIMARY KEY 같은 제약은 단순 설명이 아니라, 데이터가 어떤 규칙을 반드시 따라야 하는지 데이터베이스에 직접 알려 주는 장치입니다.
  • 좋은 테이블 설계는 애플리케이션 코드에서만 규칙을 지키게 하지 않고, 데이터베이스 차원에서도 기본 안전장치를 거는 방향으로 갑니다.
  • 처음에는 열과 타입만 보는 것 같아도, 사실 CREATE TABLE은 이후 모든 조회와 수정의 기준을 만드는 가장 중요한 문장 중 하나입니다.

짧은 예제

text
CREATE TABLE users (
  id BIGSERIAL PRIMARY KEY,
  email TEXT NOT NULL UNIQUE,
  name TEXT NOT NULL,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

빠른 정리

요소역할
테이블 이름데이터를 저장할 구조 이름
열과 자료형어떤 값을 어떤 형태로 저장할지
DEFAULT값이 없을 때 기본으로 넣을 값
제약 조건데이터 규칙 강제

주의할 점

테이블을 빨리 만드는 것보다, 나중에 자주 조회할 열과 반드시 지켜야 할 규칙을 먼저 생각하는 편이 훨씬 중요합니다. 스키마는 SQL 코드의 뼈대이자 데이터 품질의 첫 방어선입니다.

참고 링크

1 sources