본문 바로가기

DB/PostgreSQL

[ PostgreSQL ] PostgreSQL의 데이터 타입 알아보기

반응형

PostgreSQL은 다양한 데이터 타입을 지원하여 유연하고 강력한 데이터베이스 관리를 가능하게 합니다. 주요 데이터 타입은 다음과 같습니다.

1. 숫자 데이터 타입

  • 정수형(Integer Types)
    • smallint: 2바이트의 정수 (-32,768 ~ 32,767)
    • integer 또는 int: 4바이트의 정수 (-2,147,483,648 ~ 2,147,483,647)
    • bigint: 8바이트의 정수 (-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807)
  • 실수형(Floating Point Types)
    • real: 4바이트의 실수 (단정밀도)
    • double precision: 8바이트의 실수 (배정밀도)
    • numeric 또는 decimal: 고정 소수점 숫자, 정밀도와 소수 자릿수를 지정할 수 있어 정밀한 계산에 적합

2. 통화 데이터 타입

  • 'money': 소수점 이하 두자리까지 정확하게 금액을 저장하고 금융 데이터를 저장한다. (예 799.99)

3. 문자 데이터 타입

  • 문자형(Character Types)
    • char(n): 고정 길이 문자형
    • varchar(n): 가변 길이 문자형 (최대 n 문자)
    • text: 가변 길이의 문자열, 길이 제한이 없음

4. 바이너리 데이터 타입

  • 'bytea': 바이너리 string을 저장함 (예: '\000')

5. 날짜 및 시간 데이터 타입

  • date: 날짜만 저장 (예: 2024-10-25)
  • time [without time zone]: 시간만 저장 (예: 13:45:30)
  • timestamp [without time zone]: 날짜와 시간을 함께 저장 (예: 2024-10-25 13:45:30)
  • timestamptz 또는 timestamp with time zone: 타임존 정보를 포함한 날짜와 시간
  • interval: 두 날짜 또는 시간 사이의 기간을 나타냄 (예: 1 year 2 months)

6. Boolean 타입

  • boolean: TRUE, FALSE, NULL 값을 가질 수 있음.

7. 배열 타입 (Array Types)

  • PostgreSQL은 모든 기본 데이터 타입에 대해 배열을 지원합니다. 예를 들어, integer[]는 정수 배열, text[]는 문자열 배열을 나타냅니다.

8. JSON과 JSONB 타입

  • json: JSON 데이터 형태로 저장하지만, 검색 시 성능이 떨어질 수 있음.
  • jsonb: 이진 형태의 JSON으로, 더 효율적인 검색과 인덱싱이 가능.

9. 기타 데이터 타입

  • Enumerated: 다른 언어에서 사용되는 enum type과 같은 데이터를 저장한다.
  • Geometric: 2차원 공간 정보를 저장한다.
  • Text Search: 전체 문자 검색을 지원한다.
  • XML: XML 데이터를 저장함.
  • Range: 범위 정보를 저장함 (예: 10 - 20, 2010-01-01 14:30, 2010-01-01 15:30)
  • Domain: 다른 데이터 타입에 근거한 사용자 정의 데이터 타입
  • pg_lsn: LSN (Log Sequence Number) 데이터를 저장함.
  • Pseudo: 함수의 매개변수와 리턴 값으로 사용됨.
  • Object Identifier: primary keys로 사용됨
  • UUID: uuid는 고유 식별자를 저장하는데 사용됨.
  • CIDR 및 INET: 네트워크 주소를 저장 (cidr은 네트워크, inet은 호스트 또는 네트워크)
  • MACADDR: MAC 주소를 저장
  • BIT 및 BIT VARYING: 비트 문자열을 저장

10. 사용자 정의 타입

  • Composite Types
  • PostgreSQL은 CREATE TYPE 명령을 통해 사용자 정의 타입을 만들 수 있어, 응용 프로그램에 특화된 데이터 구조를 저장하는 데 유용합니다.

PostgreSQL은 위와 같이 다양한 데이터 타입을 제공하여, 데이터베이스 설계와 관리에 있어 매우 유연하게 사용할 수 있습니다.

반응형