PostgreSQL에서 자주 사용되는 타입들을 정리합니다. 자세한 내용은 아래의 Document를 참고하시면 됩니다.
https://www.postgresql.org/docs/current/datatype.html
Numeric Types
- smallint, 작은 범위의 정수
- integer, 일반 범위의 정수
- bigint, 큰 범위의 정수
- decimal, 유저가 정의한 정확도
- numeric, PostgreSQL에서는 decimal과 완전 동일함
- (표준 SQL이 decimal, numeric 두 타입을 모두 가지고 있어서 이를 지원함)
- serial, auto increment 되는 정수
- bigserial, auto increment 되는 큰 범위의 정수
Monetary Types
- money, 통화 amount
Character Types
- varchar, 가변 길이 with limit
- char, 고정 길이, 남은 자리는 공백으로 채움 (paddinig)
- text, 길이에 상관없이 문자열 저장, limit 없는 varchar
Date/TIme Types
- timestamp, without timezone, 시간대 정보 반영 X
- timestampz, with timezone, 시간대 정보 반영 O
- date, 날짜 정보만 표시
- time, without timezone 시간 정보만 표시, 시간대 정보 반영 X
- time, with timezone 시간 정보만 표시, 시간대 정보 반영 O
- interval
Boolean Type
- boolean, true or false 상태 값 저장
Enumerated Types
열거형(Enum)은 정적이고, 순서가 지정된 값 집합을 구성하는 데이터 유형 (eg. 요일)
- Ordering, 값의 순서는 Enum 타입이 생성될 때 나열된 순서, 표준 연산자 지원 O
- Type Safely, 허락되지 않은 열거형은 에러를 뱉는다. Invalid input
- case sensitive, happy != HAPPY
Geometric Types
Geometric data type은 2차원 공간 객체
- point
- box
- path
- polygon
- circle
Text Search Types
전문 검색(full text search)를 위한 두 종류의 데이터 타입
- tsvector
- tsquery
UUID Type
uuid를 저장하기 위한 타입
- 출력은 항상 표준 출력임, a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11
- 입력은 표준, {}, 대문자 등 모두 허용가능
XML Type
XML 데이터를 저장하기 위한 타입
JSON Types
JSON 데이터를 저장하기 위한 타입. text 타입으로 저장할 수도 있지만 JSON 규칙에 유효한지 강제화 하는 이점이 있음
- json, 들어온 값을 그대로 저장함, 인덱싱이 불가함.
- jsonb, 들어온 값을 그대로 저장하지 않고, 문자열 사이의 공백을 제거함, key 순서도 보장하지 않음, 인덱싱이 가능함.
Arrays
column을 가변길이의 다차원 배열로 정의할 수 있다. 빌트인, 사용자 지정, enum 등의 타입이 가능함
728x90