[PostgreSQL] 데이터 타입 정리!

10000DOO·2023년 6월 25일
1

DataBase

목록 보기
1/2
post-thumbnail

🔶데이터 타입 종류

PostgreSQL에서 자주 사용되는 데이터 타입으로는
1. 숫자형(Numeric Types)
2. 화폐형(Monetary Types)
3. 문자형(Character Types)
4. 날짜 및 시간(Date & Time)
5. 불리언형(Boolean Types)
6. 배열형(Array Types)
7. json형(JSON Type)

🔶숫자형(Numeric Types)

숫자형도 여러가지 종류가 있다.

🔹1. INTEGER

INTEGER 타입은 INT로 축약해서 사용할 수 있고 많은 프로그래밍 언어에서 사용되는 int형과 유사하다.
4 bytes(-2147483648 ~ +2147483647)

🔹2. BIGINT

기본 int에 비해 넓은 범위의 정수에 대응한다. 자바의 long 타입과 유사하다.
8 bytes(-9223372036854775808 ~ 9223372036854775807)

🔹3. NUMERIC

소수점까지 정확하게 입력받아야할 때 사용하기 좋다. NUMERIC(p,q) p에는 전체 자릿수 q에는 소수점 자릿수를 지정한다. ex)NUMERIC(3,2) =0.01~9.99범위의 숫자를 입력받을 수 있다.
보통NUMERIC(n) 이런식으로 사용하며 이런 경우 n자리 정수로 제한한다. 사용자 지정 정밀도, variable, 정확(제한 없음)

🔹4. SERIAL

INTEGER를 기본 값으로 1씩 추가되어 자동으로 증가하고 주로 PK에 사용된다 .
4 bytes(1 ~ 2147483647)

🔹5. BIGSERIAL

INTEGER과 BIGINT와 비슷한 관계로 자동으로 증가하지만 최댓값이 더 크다.
8 bytes(1 ~ 9223372036854775807

🔶화폐형(Monetary Types)

🔹1. MONEY

MONEY타입은 Locale에 따라 다양한 화폐 타입의 입력을 받을 수 있다.
8 bytes(-92233720368547758.08 ~ +92233720368547758.07)

🔶문자형(Character Types)

🔹1. CHAR

CHAR(n) = 문자길이 + 공백 형식으로 n에 맞춰 저장

🔹2. VARCHAR

n이하의 문자를 그대로 저장
CHAR는 문자가 n자리보다 짧을 경우 공백으로 채워줘야 되기 때문에 VARCHAR에 비해 성능이 나쁘다.

🔹3. TEXT

길이에 상관없이 모든 문자열 저장(=n지정하지 않은 VARCHAR)

🔶날짜 및 시간(Date & Time)

🔹1. TIMESTAMP

현재 세계 표준시(UTC), 시간대 정보 반영하지 않음. 8bytes

🔹2. TIMESTAMPTZ

세계 표준시, 시간대 정보 반영(한국 = GMT+9) 8bytes

🔹3. DATE

날짜 정보만 표시 4bytes

🔹4. TIME

시간 정보만 표시, 세계표준시(시간대 정보 반영하지 않음) 8bytes

🔹5. TIME WITH TIME ZONE

시간 정보만 표시, 세계표준시(시간대 정보 반영) 12bytes

🔶불리언형(Boolean Types)

🔹1. BOOLEAN

PostgreSQL은 True, yes, on, 1 모두를 True로 인식한다.
반대로 False, no, off, 0 모두를 False로 인식한다.
알 수 없는 정보 또는 일부가 불확실한 정보는 null로 분리한다.

🔶배열형(Array Types)

대부분의 데이터 타입은 본인들의 배열형 타입을 가지고 있다. ex) INTEGER[ ], VARCHAR[ ], BOOLEAN[ ]

배열형으로 입력하는 방법으로는 두가지가 있다.
1. Array[ ]형태로 입력

Insert Into Member
Values ("홍길동", Array[01012345678,01087654321]);
  1. ' '안에 중괄호로 표시
Insert Into Member
Values ("홍길동", '{01012345678,01087654321}');

🔶json형(JSON Type)

🔹1. JSON

JSON은 JSONB와 달리 입력받는 텍스트의 정확한 사본을 만들어 저장한다. 또한 해당 데이터를 불러올 때는 재분석하여 출력한다.

🔹1. JSONB

JSONB는 JSON과 달리 텍스트를 binary형태로 분해 후 저장해서 입력 시 JSON에 비해 느리지만 출력 시 재분석 과정을 거치지 않고 바로 처리하기 때문에 출력 속도는 JSON에 비해 빠르다.

profile
iOS 개발자 지망생 https://github.com/10000DOO

0개의 댓글