- 데이터 타입표
- 타입 설명
- 마치며
형식 | 명칭 | 별명 | 설명 |
---|---|---|---|
정수 | smallint | int2 | 2 바이트 부호있는 정수 |
integer | int , int4 | 4 바이트 부호있는 정수 | |
bigint | int8 | 8 바이트 부호있는 정수 | |
bigserial | serial8 | 자동 증분 8 바이트 정수 | |
정밀한 숫자 | numeric [ ( p , s ) ] | decimal [ ( p , s ) ] | 정확한 선택 가능한 높은 정밀도 |
부동 소수점 | real | float4 | 단정 밀도 부동 소수점 (4 바이트) |
double precision | float8 | double (8 바이트) | |
자동 증가 | smallserial | serial2 | 자동 증분 2 바이트 정수 |
serial | serial4 | 자동 증분 4 바이트 정수 | |
bigserial | serial8 | 자동 증분 8 바이트 정수 | |
문자열 | character varying [ ( n ) ] | varchar [ ( n ) ] | 가변 길이 문자열 |
character [ ( n ) ] | char [ ( n ) ] | 고정 길이 문자열 | |
text | 가변 길이 문자열 | ||
날짜/시간 | time [ ( p ) ][ without time zone ] | 시간 (시간대 없음) | |
time [ ( p ) ] with time zone | timetz | 시간대가 있는 시간 | |
timestamp [ ( p ) ][ without time zone ] | 날짜 및 시간 (시간대 없음) | ||
timestamp [ ( p ) ] with time zone | timestamptz | 시간대있는 날짜와 시간 | |
date | 달력의 날짜 (연월일) | ||
interval [ fields ][ ( p ) ] | 시간 간격 | ||
논리 | boolean | bool | 논리값 (true / false) |
네트워크 주소 | cidr | IPv4 또는 IPv6 네트워크 주소 | |
inet | IPv4 또는 IPv6 호스트 주소 | ||
macaddr | MAC (Media Access Control) 주소 | ||
비트열 | bit [ ( n ) ] | 고정 길이 비트열 | |
bit varying [ ( n ) ] | varbit | 가변 길이 비트열 | |
도형 | box | 평면 사각형 | |
circle | 평면 원형 | ||
line | 평면의 무한 직선 | ||
lseg lseg | 평면 위의 선분 | ||
path | 평면의 기하학적 경로 | ||
point | 평면의 기하학 점 | ||
polygon | 평면의 닫힌 기하학적 경로 | ||
화폐 | money | 화폐 금액 | |
텍스트 검색 | tsquery | 텍스트 검색 문의 | |
tsvector | 텍스트 검색 문서 | ||
txid_snapshot | 사용자 수준의 트랜잭션 ID 스냅샷 | ||
uuid | uuid | 범용 고유 식별자 | |
xml | xml | XML 데이터 | |
이진 데이터 | bytea | 이진 데이터 ( "바이트 배열 (byte array)") | |
json | json | 텍스트 json 데이터 | |
jsonb | 바이너리 json 데이터 |
정수이므로 소수점이 있는 숫자는 처리 할 수 없습니다.
소수점이 있는 숫자를 저장하게 되면 정수로 변환되어 저장됩니다.
각 데이터 타입에 저장할 수 있는 값의 범위가 정해져 있어 범위를 초과 한 값을 저장하려고 하면 오류가 발생합니다.
numeric 및 decimal 타입은 매우 큰 숫자를 저장할 수 있습니다.
연산을 해도 오차가 발생하고 정확하게 할 수 있는 데이터 타입입니다.
처리는 정수와 부동 소수점 데이터 형과 비교해 매우 늦어 지므로 주의가 필요합니다.
자동으로 지금까지 등록된 값보다 큰 값(일반적으로 1 큰 값)이 자동으로 저장됩니다.
MySQL에서의 AUTO_INCREMENT를 설정 한 것과 비슷합니다.
character varying(n)은 가변 길이의 문자형이고 최대 길이(n)까지의 문자를 저장할 수 있습니다.
character(n)은 고정 길이 문자형이며 저장할 문자가 n개가 되지 않는 경우에는 나머지는 공백으로 채워집니다.
두 문자형 모두 n개의 문자보다 긴 문자열을 저장하려고 하면 에러가 발생하며 n개의 문자보다 짧으면 n개의 문자만 저장됩니다.
길이를 지정하지 않고 character varying라고만 지정하면 문자 제한이 없는 것으로 간주합니다.
길이를 지정하지 않고 character라고만지정하면 character(1)로 간주합니다.
text 형식은 길이에 제한이 없는 가변 길이 문자형이고 매우 긴 문자열을 포함하는 경우에 사용합니다.
PostgreSQL에서는 n은 n byte가 아닌 n length입니다.
한글을 2byte로 처리하는 게 아닌 length로만 체크하면 됩니다.
with time zone은 현재 있는 지역의 시간대를 표시합니다.
시간대가 없을 시 UTC시간대로 표시합니다.
1.네트워크 주소 형식(cidr, inet, macaddr)
inet 형, cidr 형 둘 다 인터넷 주소의 표기 방법입니다.
IPv4에서도 IPv6를 모두 작성 가능합니다.
macaddr 형은 하드웨어 고유의 MAC 주소를 저장하는 형식입니다.
1.JSON 형식(JSON, JSONB)
json 형식은 9버전부터 도입된 타입입니다.
json 형식은 TEXT로 저장하는 것과 다를바 없으나 jsonb 형식은 바이너리 형태로 저장하여 인덱싱 기능을 제공합니다.
postgreSQL의 데이터 타입 설명입니다.
틀린 부분이 있으면 말씀 부탁드리겠습니다.