
smallint: -32,768 ~ 32,767 (2바이트)
integer 또는 int: -2,147,483,648 ~ 2,147,483,647 (4바이트)
bigint: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (8바이트)
real: 4바이트, 단정도 부동소수점 (6~9자리 소수점 정확도)
double precision: 8바이트, 배정도 부동소수점 (15자리 소수점 정확도)
정확한 숫자
numeric(p, s) 또는 decimal(p, s): p는 총 자릿수, s는 소수점 이하 자릿수 (정확한 계산이 필요한 경우 사용)
char(n): 고정 길이 문자 (n 길이, 빈 공간은 공백으로 채움)
varchar(n): 가변 길이 문자 (최대 n 길이)
text: 가변 길이 문자 (길이 제한 없음)
date: 날짜 (YYYY-MM-DD)
time [without time zone]: 시간 (HH:MI:SS)
time with time zone: 시간 + 타임존
timestamp [without time zone]: 날짜와 시간 (YYYY-MM-DD HH:MI:SS)
timestamp with time zone: 날짜와 시간 + 타임존
interval: 시간 간격 (ex: 1 year 2 months)
boolean: 참 (true), 거짓 (false), NULL
PostgreSQL에서는 모든 데이터 타입을 배열로 선언 가능
예: integer[], text[]
json: 구조화된 JSON 데이터를 저장 (텍스트 형태로 저장)
jsonb: 바이너리 형식으로 JSON 데이터를 저장 (효율적이고 빠른 검색 지원)
point: 2차원 점 (x, y)
line: 무한 직선
lseg: 선분
box: 직사각형
path: 경로 (열린 경로 또는 닫힌 경로)
polygon: 다각형
circle: 원
uuid: 범용 고유 식별자
int4range: 4바이트 정수 범위
int8range: 8바이트 정수 범위
numrange: 숫자 범위
tsrange: 시간 범위 (without time zone)
tstzrange: 시간 범위 (with time zone)
daterange: 날짜 범위
cidr: IP 네트워크
inet: IP 주소
macaddr: MAC 주소
macaddr8: 8바이트 MAC 주소
bytea: 바이너리 데이터 (예: 파일 저장)
oid: 객체 식별자
tsquery: 텍스트 검색 쿼리
tsvector: 텍스트 검색 벡터
xml: XML 데이터
money: 화폐 금액 (로케일에 따라 포맷 변경)
PostgreSQL에서는 사용자가 자신의 데이터 타입을 정의할 수도 있습니다.
예: CREATE TYPE new_type AS ENUM ('value1', 'value2');