장 8. 자료형

차례
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 Types
8.2. Monetary Types
8.3. 문자 자료형
8.4. Binary Data Types
8.5. Date/Time Types
8.5.1. Date/Time Input
8.5.2. Date/Time Output
8.5.3. Time Zones
8.5.4. Interval Input
8.5.5. Interval Output
8.5.6. Internals
8.6. Boolean Type
8.7. Enumerated Types
8.7.1. Declaration of Enumerated Types
8.7.2. Ordering
8.7.3. Type Safety
8.7.4. Implementation Details
8.8. Geometric Types
8.8.1. Points
8.8.2. Line Segments
8.8.3. Boxes
8.8.4. Paths
8.8.5. Polygons
8.8.6. Circles
8.9. Network Address Types
8.9.1. inet
8.9.2. cidr
8.9.3. inet vs. cidr
8.9.4. macaddr
8.10. 비트 문자열 자료형
8.11. Text Search Types
8.11.1. tsvector
8.11.2. tsquery
8.12. UUID Type
8.13. XML Type
8.13.1. Creating XML Values
8.13.2. Encoding Handling
8.13.3. Accessing XML Values
8.14. Arrays
8.14.1. Declaration of Array Types
8.14.2. Array Value Input
8.14.3. Accessing Arrays
8.14.4. Modifying Arrays
8.14.5. Searching in Arrays
8.14.6. Array Input and Output Syntax
8.15. Composite Types
8.15.1. Declaration of Composite Types
8.15.2. Composite Value Input
8.15.3. Accessing Composite Types
8.15.4. Modifying Composite Types
8.15.5. Composite Type Input and Output Syntax
8.16. Object Identifier Types
8.17. Pseudo-Types

PostgreSQL에서는 사용자들이 쓸 수 있는 많은 기본 자료형을 제공하고 있다. 또한, CREATE TYPE 명령을 이용해서 새로운 자료형을 직접 만들어 사용할 수 있다.

PostgreSQL에서 기본적으로 제공하는 모든 내장 범용 자료형은 표 8-1 목록과 같다. "별칭" 칼럼에 나열된 대체 이름들의 대부분은 PostgreSQL 역사적인 이유로 내부적으로 사용되는 것들이다. 덧붙여, 내부적으로만 사용하는 것이거나, 더 이상 사용되지 않을 옛 자료형들도 있지만, 그것들은 여기서 나열하지 않는다.

표 8-1. 자료형

이름별칭설명
bigintint8부호 있는 8바이트 정수형
bigserialserial8자동 증가 8바이트 정수형
bit [ (n) ] 고정 길이 비트 문자열
bit varying [ (n) ]varbit가변 길이 비트 문자열
booleanbool논리 불린형 (참/거짓)
box 평면 위 직각사각형
bytea 이진자료 ("바이트 배열")
character varying [ (n) ]varchar [ (n) ]가변 결이 문자열
character [ (n) ]char [ (n) ]고정 길이 문자열
cidr IPv4 또는 IPv6 네트워크 주소
circle 평면 위 원
date 달력 날짜 (년, 월, 일)
double precisionfloat82배 정밀 부동 소수형 (8 바이트)
inet IPv4 또 IPv6 호스트 주소
integerint, int4부호 있는 4바이트 정수형
interval [ fields ] [ (p) ] 시간 간격
line 평면 위 무한 직선
lseg 평면 위 선분
macaddr MAC (매체 접근 제어) 주소
money 화폐형
numeric [ (p, s) ]decimal [ (p, s) ]정밀도 선택 가능한 숫자형
path 평면 위 기하학적 경로
point 평면 위 기하학적 위치
polygon 평면 위 기하학적 닫힌 경로
realfloat4부동소수형 (4 바이트)
smallintint2부호있는 2바이트 정수형
serialserial4자동 증가 4바이트 정수형
text 가변 길이 문자열
time [ (p) ] [ without time zone ] 시각 (지역시간대 없음)
time [ (p) ] with time zonetimetz지역시간대 포함한 시각
timestamp [ (p) ] [ without time zone ] 날짜와 시각 (지역시간대 없음)
timestamp [ (p) ] with time zonetimestamptz지역시간대를 포함한 날짜와 시각
tsquery 텍스트 검색 쿼리
tsvector 텍스트 검색 문서
txid_snapshot 사용자-수준 트랜잭션 ID 스냅샷
uuid 범용 고유 식별자
xml XML 자료

호환성: The following types (or spellings thereof) are specified by SQL: bigint, bit, bit varying, boolean, char, character varying, character, varchar, date, double precision, integer, interval, numeric, decimal, real, smallint, time (with or without time zone), timestamp (with or without time zone), xml.

Each data type has an external representation determined by its input and output functions. Many of the built-in types have obvious external formats. However, several types are either unique to PostgreSQL, such as geometric paths, or have several possible formats, such as the date and time types. Some of the input and output functions are not invertible, i.e., the result of an output function might lose accuracy when compared to the original input.