본문 바로가기
Database/PostgreSQL

[PostgreSQL] 데이터타입(자료형) 종류

by 그적 2022. 12. 4.

작성일자 기준 : 15.0 버전

참고 문서 : https://www.postgresql.org/files/documentation/pdf/15/postgresql-15-A4.pdf

 

PostgreSQL 데이터 타입 (자료형)

- 정수형 데이터

  종류 별칭/동의어 비고
정수(2byte) smallint int2 -32768 ~ 32767
정수(4byte) integer int / int4 -2147483648 ~ 2147483647
정수(8byte) bigint int8 -9223372036854775808 ~ 9223372036854775807
가변 numeric decimal 숫자값과 소수점 아래를 지정해 정밀한 숫자 표현
정수(2byte) smallserial serial2 자동 증가 타입 (1 ~ 32767 )
정수(4byte) serial serial4 자동 증가 타입 (1 ~ 2147483647 )
정수(8byte) bigserial serial8 자동 증가 타입 (1 ~ 9223372036854775807)
정수(1byte) boolean   true = yes = on = 1
false = no = off = 0

 

- 실수형 데이터

  종류 별칭/동의어 비고
실수(4byte) real float4 최소 6자리 정밀도
실수(8byte) double precision float8 최소 15자리 정밀도

 

- 날짜 및 시간형 데이터

종류 설명 비고 사용 가능 함수
timestamp 8byte 날짜, 시간 둘 다 now(), today()
date 4byte 날짜만 now(), today()
time 8byte 시간만 now(), allballs

 

- 문자열 데이터

종류 설명 비고
char 고정 길이 문자열 1바이트
char(n) 고정 길이 문자열 n바이트, 빈 공간은 패딩으로 채워짐
varchar(n) 가변 길이 문자열 최대 n개 글자수 지정
text 가변 길이 문자열 제한 없음
enum    

 

- Network Address 데이터

종류   설명
cidr 7 혹은 19 byte IPv4 혹은 IPv6 네트워크 주소
inet 7 혹은 19 byte IPv4 혹은 IPv6 네트워크 주소 (cidr보다 더 유연함)
macaddr 6byte MAC 주소
macaddr8 8byte MAC 주소

 

- 배열 데이터

: 타입 뒤에 [] 붙이면 배열 데이터를 생성할 수 있다. 기본 데이터 타입, ENUM 타입 등 다양한 타입에 적용될 수 있다.

CREATE TABLE table1(
   col1 text,
   col2 integer[],                   # 배열 최대 사이즈 안정함
   col3 integer[3][3],               # 배열 최대 사이즈를 3으로 정함
   col4 integer ARRAY[4]             # 뒤에 ARRAY[사이즈]를 붙이는 방법으로도 사용함
);

 

- 복합 데이터

: 새로운 데이터 타입을 생성한 후, 생성한 타입을 데이터 타입으로 설정할 수 있다.

# inventory_item 데이터 타입 생성
CREATE TYPE inventory_item AS (
 name text,
 supplier_id integer,
 price numeric
);

# 데이터 타입으로 지정
CREATE TABLE on_hand (
 item inventory_item,
 count integer
);

# 다음과 같이 insert 가능
INSERT INTO on_hand VALUES (ROW('fuzzy dice', 42, 1.99), 1000);

 

이외에도 공간 데이터 타입, JSON 타입, 범위 데이터 등이 존재한다.

댓글