기본 패턴
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