SW개발/Database

[Database] PostgreSQL 타입 정리

PostgreSQL에서 자주 사용되는 타입들을 정리합니다. 자세한 내용은 아래의 Document를 참고하시면 됩니다.

 

https://www.postgresql.org/docs/current/datatype.html

 

Chapter 8. Data Types

Chapter 8. Data Types Table of Contents 8.1. Numeric Types 8.1.1. Integer Types 8.1.2. Arbitrary Precision Numbers 8.1.3. Floating-Point Types 8.1.4. Serial …

www.postgresql.org

 

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