수색…


소개

PostgreSQL에는 사용자가 사용할 수있는 풍부한 데이터 형식이 있습니다. 사용자는 CREATE TYPE 명령을 사용하여 PostgreSQL에 새로운 유형을 추가 할 수 있습니다.

https://www.postgresql.org/docs/9.6/static/datatype.html

숫자 유형

이름 저장 용량 기술 범위
smallint 2 바이트 소 범위 정수 -32768 ~ +32767
integer 4 바이트 정수에 대한 ypical 한 선택 -2147483648에서 +2147483647
bigint 8 바이트 대 범위 정수 -9223372036854775808 ~ +9223372036854775807
decimal 변하기 쉬운 사용자 지정 정밀도, 일치 소수점 앞에 131072 자리까지; 소수점 이하 16383 자릿수
numeric 변하기 쉬운 사용자 지정 정밀도, 일치 소수점 앞에 131072 자리까지; 소수점 이하 16383 자릿수
real 4 바이트 가변 정밀도, 부정확 10 진수 6 자리 정밀도
double precision 8 바이트 가변 정밀도, 부정확 10 진수 15 자리 정밀도
smallserial 2 바이트 작은 자동 증가 정수 1 ~ 32767
serial 4 바이트 자동 증가 정수 1 ~ 2147483647
bigserial 8 바이트 큰 자동 증가 정수 1 ~ 9223372036854775807
int4range 정수의 범위
int8range bigint의 범위
numrange 숫자의 범위

날짜 / 시간 유형

이름 저장 용량 기술 낮은 가치 높은 가치 해결
timestamp (시간대 없음) 8 바이트 날짜와 시간 모두 (시간대 없음) 기원전 4713 년 294276 AD 1 마이크로 초 / 14 자리
timestamp (시간대 포함) 8 바이트 시간대가있는 날짜와 시간 모두 기원전 4713 년 294276 AD 1 마이크로 초 / 14 자리
date 4 바이트 날짜 (시간 없음) 기원전 4713 년 5874897 AD 1 일
time (시간대 없음) 8 바이트 시간 (날짜 없음) 00:00:00 24:00:00 1 마이크로 초 / 14 자리
time (시간대 포함) 12 바이트 시간대가있는 시간대 만 00 : 00 : 00 + 1459 24 : 00 : 00-1459 1 마이크로 초 / 14 자리
interval 16 바이트 시간 간격 -178 만 년 17800,00000 년 1 마이크로 초 / 14 자리
tsrange 타임 존이없는 타임 스탬프의 범위
tstzrange 시간대가있는 타임 스탬프 범위
daterange 날짜 범위

기하학 유형

이름 저장 용량 기술 대표
point 16 바이트 비행기를 가리킨다. (x, y)
line 32 바이트 무한 선 {알파벳}
lseg 32 바이트 유한 라인 세그먼트 ((x1, y1), (x2, y2))
box 32 바이트 사각형 상자 ((x1, y1), (x2, y2))
path 16 + 16n 바이트 닫힌 경로 (다각형과 비슷 함) ((x1, y1), ...)
path 16 + 16n 바이트 열린 경로 [(x1, y1), ...]
polygon 40 + 16n 바이트 다각형 (닫힌 경로와 유사) ((x1, y1), ...)
circle 24 바이트 <(x, y), r> (중심점과 반경)

네트워크 주소 유형

이름 저장 용량 기술
cidr 7 또는 19 바이트 IPv4 및 IPv6 네트워크
inet 7 또는 19 바이트 IPv4 및 IPv6 호스트 및 네트워크
macaddr 6 바이트 MAC 주소

문자 유형

이름 기술
character varying(n) , varchar(n) 한도가있는 가변 길이
character(n) , char(n) 고정 길이, 빈 패딩
text 무제한 가변 길이

배열

PostgreSQL에서는 내장, 사용자 정의 또는 열거 형의 배열을 만들 수 있습니다. 기본적으로이 배열에 제한은 없지만, 당신은 그것을 지정할 수 있습니다.

배열 선언

SELECT integer[];
SELECT integer[3];
SELECT integer[][];
SELECT integer[3][3];
SELECT integer ARRAY;
SELECT integer ARRAY[3];

배열 만들기

SELECT '{0,1,2}';
SELECT '{{0,1},{1,2}}';
SELECT ARRAY[0,1,2];
SELECT ARRAY[ARRAY[0,1],ARRAY[1,2]];

배열 액세스

기본적으로 PostgreSQL은 배열에 대해 array[1] 부터 시작하는 번호 매김 규칙을 사용합니다. 즉, n 요소의 배열은 array[1] 로 시작하고 array[n] 끝납니다.

--accesing a spefific element
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT int_arr[1] FROM arr;

int_arr
---------
        0
(1 row)

--sclicing an array
WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT int_arr[1:2] FROM arr;

int_arr
---------
    {0,1}
(1 row)

배열에 대한 정보 얻기

--array dimensions (as text)
with arr as (select ARRAY[0,1,2] int_arr) select array_dims(int_arr) from arr;

array_dims
------------
       [1:3]
(1 row)

--length of an array dimension
 WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT array_length(int_arr,1) FROM arr;

 array_length
 --------------
              3
 (1 row)

--total number of elements across all dimensions
 WITH arr AS (SELECT ARRAY[0,1,2] int_arr) SELECT cardinality(int_arr) FROM arr;
 
 cardinality
 -------------
             3
 (1 row)

배열 함수

추가됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow