[PostgreSQL] Data Type

C__W.A·2025년 1월 13일

SQL

목록 보기
3/5
post-thumbnail

1. 숫자 타입

🟢 정수형

smallint: -32,768 ~ 32,767 (2바이트)
integer 또는 int: -2,147,483,648 ~ 2,147,483,647 (4바이트)
bigint: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (8바이트)

🟢 실수형

real: 4바이트, 단정도 부동소수점 (6~9자리 소수점 정확도)
double precision: 8바이트, 배정도 부동소수점 (15자리 소수점 정확도)
정확한 숫자
numeric(p, s) 또는 decimal(p, s): p는 총 자릿수, s는 소수점 이하 자릿수 (정확한 계산이 필요한 경우 사용)

2. 문자 타입

char(n): 고정 길이 문자 (n 길이, 빈 공간은 공백으로 채움)
varchar(n): 가변 길이 문자 (최대 n 길이)
text: 가변 길이 문자 (길이 제한 없음)

3. 날짜 및 시간 타입

date: 날짜 (YYYY-MM-DD)
time [without time zone]: 시간 (HH:MI:SS)
time with time zone: 시간 + 타임존
timestamp [without time zone]: 날짜와 시간 (YYYY-MM-DD HH:MI:SS)
timestamp with time zone: 날짜와 시간 + 타임존
interval: 시간 간격 (ex: 1 year 2 months)

4. 논리 타입

boolean: 참 (true), 거짓 (false), NULL

5. 배열 타입

PostgreSQL에서는 모든 데이터 타입을 배열로 선언 가능
예: integer[], text[]

6. JSON 데이터 타입

json: 구조화된 JSON 데이터를 저장 (텍스트 형태로 저장)
jsonb: 바이너리 형식으로 JSON 데이터를 저장 (효율적이고 빠른 검색 지원)

7. 지리 데이터 타입

point: 2차원 점 (x, y)
line: 무한 직선
lseg: 선분
box: 직사각형
path: 경로 (열린 경로 또는 닫힌 경로)
polygon: 다각형
circle: 원

8. UUID

uuid: 범용 고유 식별자

9. 범위 타입

int4range: 4바이트 정수 범위
int8range: 8바이트 정수 범위
numrange: 숫자 범위
tsrange: 시간 범위 (without time zone)
tstzrange: 시간 범위 (with time zone)
daterange: 날짜 범위

10. 네트워크 주소 타입

cidr: IP 네트워크
inet: IP 주소
macaddr: MAC 주소
macaddr8: 8바이트 MAC 주소

11. 대용량 객체 타입

bytea: 바이너리 데이터 (예: 파일 저장)
oid: 객체 식별자

12. 기타 타입

tsquery: 텍스트 검색 쿼리
tsvector: 텍스트 검색 벡터
xml: XML 데이터
money: 화폐 금액 (로케일에 따라 포맷 변경)

13. 사용자 정의 타입

PostgreSQL에서는 사용자가 자신의 데이터 타입을 정의할 수도 있습니다.

예: CREATE TYPE new_type AS ENUM ('value1', 'value2');

profile
기술은 문제를 해결하기 위해 존재한다

0개의 댓글