PostgreSQL 데이터 타입
분류 | 종류 | 내용 |
---|---|---|
숫자 | smallint | 작은 범위의 정수, 2 bytes(-32768 ~ +32767) |
integer | 정수에 대한 일반적인 선택, 4 bytes(-2147483648 ~ +2147483647) | |
bigint | 큰 범위의 정수, 8 bytes(-9223372036854775808 ~ 9223372036854775807) | |
decimal | 사용자 지정 정밀도, variable, 정확(제한 없음) | |
numeric | 사용자 지정 정밀도, variable, 정확(제한 없음) | |
real | 가변 정밀도, 부정확, 4 bytes(6자리 소수점 정밀도) | |
double precision | 가변 정밀도, 부정확, 8 bytes(15자리 소수점 정밀도) | |
serial | 자동 증가 정수, 4 bytes(1 ~ 2147483647) | |
bigserial | 큰 자동 증가 정수, 8 bytes(1 ~ 9223372036854775807 | |
화폐 | money | 통화 금액, 8 bytes(-92233720368547758.08 ~ +92233720368547758.07) |
문자 | character varying(n), varchar(n) | 제한이있는 가변 길이 |
character(n), char(n) | 고정 길이, 공백 채우기 | |
text | 가변 길이 무제한 | |
"char" | 1byte 내부 유형, 1 byte | |
name | 개체 이름의 내부 유형, 64 bytes | |
이진 데이터 | bytea | 가변 길이 이진 문자열, 1 또는 4 byte와 실제 2진 문자열 |
날짜/시간 | timestamp [(p)][without time zone] | 날짜와 시간 모두(시간대 없음), 8 bytes |
timestamp [(p)] with time zone | 시간대가 있는 날짜와 시간 모두, 8 bytes | |
date | 날짜(시간 없음), 4 bytes | |
time [(p)][without time zone] | 시간(날짜 없음), 8 bytes | |
time [(p)] with time zone | 시간대만 포함, 12 bytes | |
interval [fields][(p)] | 시간 간격, 16 bytes | |
부울 | boolean | 참 또는 거짓 상태, 1 byte |
기하학 | point | 비행기 위의 포인트, 16 bytes, (x,y) |
line | 무한 라인(완전히 구현되지 않음), 32 bytes, ((x1,y1),(x2,y2)) | |
lseg | 유한 선분, 32 bytes, ((x1,y1),(x2,y2)) | |
box | 직사각형 상자, 32 bytes, ((x1,y1),(x2,y2)) | |
path | 닫힌 경로(폴리곤과 유사), 16+16n bytes, ((x1,y1),...) | |
path | 열린 경로, 16+16n bytes, [(x1,y1),...] | |
polygon | 다각형(닫힌 경로와 유사), 40+16n bytes, ((x1,y1),...) | |
circle | 원, 24 bytes, <(x,y),r> (중심점 및 반경) | |
네트워크 주소 | cidr | IPv4 및 IPv6 네트워크, 7 또는 19 bytes |
inet | IPv4 및 IPv6 호스트 및 네트워크, 7 또는 19 bytes | |
macaddr | MAC 주소, 6 bytes | |
비트 문자열 | bit(n) | 길이 n과 정확히 일치 |
bit varying(n) | 최대 길이 n까지 가변 길이 | |
텍스트 검색 | tsvector | 텍스트 검색에 최적화된 형식의 문서 |
tsquery | 유사한 텍스트 쿼리 | |
개체 식별자 | oid | 숫자 객체 식별자 (예: 564182 ) |
regproc | 함수 명 (예: sum ) | |
regprocedure | 인수 유형이 있는 함수 (예: sum(int4) ) | |
regoper | 연산자 이름 (예: + ) | |
regoperator | 인수 유형이 있는 연산자 (예: *(integer,integer) 또는 -(NONE,integer) ) | |
regclass | 관계 이름 (예: pg_type ) | |
regtype | 데이터 유형 이름 (예: integer ) | |
regconfig | 텍스트 검색 구성 (예: english ) | |
regdictionary | 텍스트 검색 사전 (예: simple ) | |
Pseudo | any | 함수가 모든 입력 데이터 유형을 허용 |
anyarray | 함수가 모든 배열 데이터 유형을 허용 | |
anyelement | 함수가 모든 데이터 유형을 허용 | |
anyenum | 함수가 모든 열거형 데이터 유형을 허용 | |
anynonarray | 함수가 배열이 아닌 데이터 유형을 허용 | |
cstring | 함수가 null로 끝나는 C 문자열을 받거나 반환 | |
internal | 함수가 서버 내부 데이터 유형을 수락하거나 반환 | |
language_handler | 절차 언어 호출 핸들러가 language_handler를 반환하도록 선언 | |
record | 지정되지 않은 행 유형을 반환하는 함수를 식별 | |
trigger | 트리거를 반환하기 위해 트리거 함수가 선언 | |
void | 함수가 값을 반환하지 않음 | |
opaque | 이전에 위의 모든 목적을 수행했던 오래된 유형 이름 | |
열거 | 열거형 값은 디스크에서 4 bytes를 차지 | |
열거형 값의 텍스트 레이블 길이는 최대 63 bytes | ||
열거형 레이블은 대소문자를 구분 | ||
레이블의 공백도 중요 | ||
UUID | 하이픈으로 구분, 8자리 그룹, 4자리 그룹 3개, 12자리 그룹 순으로 소문자 16진수 시퀀스(총 32자리) | |
128 bits | ||
XML | xml 데이터 유형을 사용하여 XML 데이터를 저장 | |
배열 | 테이블의 열을 가변 길이 다차원 배열로 정의 | |
내장 또는 사용자 정의 기본 유형, 열거 유형 또는 복합 유형의 배열을 작성 | ||
특정 배열 요소를 검색하는 것은 데이터베이스 설계 오류의 징후일 가능성 (배열 요소가 될 각 항목에 대해 행이 있는 별도의 테이블을 사용하는 것 권장) | ||
복합 | 행 또는 레코드의 구조(필드 이름과 데이터 유형의 목록) |
느헤미야가 떡하니 펴져있는게 인상적이네요. ;)