지원되는 버전:현재 (18) / 17 / 16 / 15 / 14 / 13
개발 버전:개발
지원되지 않는 버전:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

F.13. 스포츠 토토 사이트

이 모듈은 다음을 구현합니다.스포츠 토토 사이트데이터 단일 내에 키/값 쌍 세트를 저장하기 위한 유형포스트그레SQL값. 이것은 많은 특성이 있는 행과 같은 다양한 시나리오에 유용합니다. 거의 검사되지 않는 데이터 또는 반구조화된 데이터입니다. 열쇠와 값은 단순히 텍스트 문자열입니다.

F.13.1.스포츠 토토 사이트외부 대표

의 텍스트 표현스포츠 토토 사이트, 입력 및 출력에 사용되며 0개 이상을 포함합니다. = 다음으로 구분된 쌍 쉼표. 몇 가지 예:

k = v
foo = 바, baz = 뭐든지
"1-a" = "아무거나"

쌍의 순서는 중요하지 않습니다. 출력시 재현됨). 쌍 사이 또는 주변의 공백=기호는 무시됩니다. 큰따옴표 공백, 쉼표를 포함하는 키와 값=s 또는s. 포함하려면 키나 값에 큰따옴표나 백슬래시를 사용하려면 다음을 사용하여 이스케이프 처리하세요. 백슬래시.

각 키스포츠 토토 사이트고유합니다. 만약에 당신은스포츠 토토 사이트중복 있음 키는 하나만 저장됩니다.스포츠 토토 사이트그리고 어느 쪽이 될지는 보장할 수 없습니다. 보관하세요:

SELECT 'a=1,a=2'::스포츠 토토 사이트;
  스포츠 토토 사이트
----------
 "a"="1"

값(키는 제외)은 SQL일 수 있습니다.NULL. 예를 들면:

키 = NULL

NULL키워드는 다음과 같습니다 대소문자를 구분하지 않습니다. 를 큰따옴표로 묶으세요.NULL일반 문자열로 처리"NULL".

참고:다음을 명심하세요h스토어텍스트 형식, 입력에 사용되는 경우, 적용됩니다이전필요한 인용 또는 이스케이프. 전달하는 경우h스토어매개변수를 통한 리터럴, 그런 다음 추가 처리가 필요하지 않습니다. 하지만 지나가다보면 따옴표로 묶인 리터럴 상수이고 작은 따옴표 문자 및 (설정에 따라standard_conforming_strings구성 매개변수) 백슬래시 문자를 이스케이프해야 합니다. 올바르게. 참조섹션 4.1.2.1문자열 처리에 대한 자세한 내용 상수.

출력 시 큰따옴표는 항상 키와 값을 묶습니다. 꼭 필요하지 않은 경우에도 마찬가지입니다.

F.13.2.스포츠 토토 사이트연산자와 함수

표 F-6.스포츠 토토 사이트연산자

운영자 설명 결과
스포츠 토토 사이트 - 텍스트 키 값 가져오기(NULL만일 존재하지 않음) 'a=x, b=y'::스포츠 토토 사이트 - '아' x
스포츠 토토 사이트 - 텍스트[] 키 값 가져오기(NULL존재하지 않는 경우) 'a=x, b=y, c=z'::스포츠 토토 사이트 - ARRAY['c','a'] "z","x"
텍스트 = 텍스트 단일 쌍 만들기스포츠 토토 사이트 'a' = 'b' "a"="b"
스포츠 토토 사이트 || 스포츠 토토 사이트 연결스포츠 토토 사이트s 'a=b, c=d'::스포츠 토토 사이트 || 'c=x, d=q'::스포츠 토토 사이트 "a"="b", "c"="x", "d"="q"
스포츠 토토 사이트 ? 텍스트 그렇습니다스포츠 토토 사이트키를 포함하고 있나요? 'a=1'::스포츠 토토 사이트 ? 'a' t
h스토어 ?& 텍스트[] 그렇습니다h스토어모두 포함 지정된 키? 'a=1,b=2'::스포츠 토토 사이트 ?& ARRAY['a','b'] t
스포츠 토토 사이트 ?| 텍스트[] 그렇습니다스포츠 토토 사이트다음 중 하나 포함 지정된 키? 'a=1,b=2'::스포츠 토토 사이트 ?| 배열['b','c'] t
스포츠 토토 사이트 @ h스토어 왼쪽 피연산자에 오른쪽이 포함되어 있습니까? 'a=b, b=1, c=NULL'::스포츠 토토 사이트 @ 'b=1' t
h스토어 <@ 스포츠 토토 사이트 왼쪽 피연산자가 오른쪽에 포함되어 있습니까? 'a=c'::스포츠 토토 사이트 <@ 'a=b, b=1, c=NULL' f
스포츠 토토 사이트 - 텍스트 왼쪽 피연산자에서 키 삭제 'a=1, b=2, c=3'::스포츠 토토 사이트 - 'b'::text "a"="1", "c"="3"
스포츠 토토 사이트 - 텍스트[] 왼쪽 피연산자에서 키 삭제 'a=1, b=2, c=3'::스포츠 토토 사이트 - ARRAY['a','b'] "c"="3"
스포츠 토토 사이트 - 스포츠 토토 사이트 왼쪽 피연산자에서 일치하는 쌍 삭제 'a=1, b=2, c=3'::스포츠 토토 사이트 - 'a=4, b=2'::스포츠 토토 사이트 "a"="1", "c"="3"
기록 #= h스토어 필드 교체기록와 함께 일치하는 값:스포츠 토토 사이트 예시 섹션 참조
%% h스토어 변환h스토어배열에 키와 값을 교대로 사용 %% 'a=푸, b=바'::스포츠 토토 사이트 a,foo,b,bar
%# 스포츠 토토 사이트 변환스포츠 토토 사이트에 2차원 키/값 배열 %# 'a=푸, b=바'::스포츠 토토 사이트 a,foo,b,bar

참고:PostgreSQL 8.2 이전에는 격리가 연산자@그리고<@소명되었습니다@그리고~, 각각. 이 이름들 여전히 사용 가능하지만 더 이상 사용되지 않으며 결국에는 사용 가능하게 됩니다. 제거됩니다. 이전 이름이 이전에는 핵심 기하학적 데이터가 뒤따르는 관례 종류!

참고:=연산자 더 이상 사용되지 않으며 향후 릴리스에서 제거될 수 있습니다. 사용스포츠 토토 사이트(텍스트, 텍스트)함수 대신.

표 F-7.h스토어기능

기능 반환 유형 설명 결과
스포츠 토토 사이트(기록) 스포츠 토토 사이트 구성스포츠 토토 사이트에서 레코드 또는 행 스포츠 토토 사이트(ROW(1,2)) f1=1,f2=2
스포츠 토토 사이트(텍스트[]) 스포츠 토토 사이트 구성스포츠 토토 사이트에서 배열은 키/값 배열이거나 2차원 배열 스포츠 토토 사이트(ARRAY['a','1','b','2']) || 스포츠 토토 사이트(ARRAY[['c','3'],['d','4']]) a=1, b=2, c=3, d=4
스포츠 토토 사이트(텍스트[], 텍스트[]) 스포츠 토토 사이트 구성스포츠 토토 사이트에서 별도의 키와 값 배열 스포츠 토토 사이트(ARRAY['a','b'], 배열['1','2']) "a"="1","b"="2"
스포츠 토토 사이트(텍스트, 텍스트) 스포츠 토토 사이트 단일 항목 만들기스포츠 토토 사이트 스포츠 토토 사이트('a', 'b') "a"="b"
akeys(스포츠 토토 사이트) 텍스트[] 얻기h스토어의 키를 배열 akeys('a=1,b=2') a,b
스키(스포츠 토토 사이트) 텍스트 집합 얻기스포츠 토토 사이트의 키를 설정 스키('a=1,b=2')
a
비
avals(스포츠 토토 사이트) 텍스트[] 얻기스포츠 토토 사이트의 값은 배열 avals('a=1,b=2') {1,2}
svals(스포츠 토토 사이트) 텍스트 집합 얻기스포츠 토토 사이트의 값은 설정 svals('a=1,b=2')
1
2
스포츠 토토 사이트_to_array(스포츠 토토 사이트) 텍스트[] 얻기스포츠 토토 사이트의 키와 값 교대하는 키와 값의 배열로 스포츠 토토 사이트_to_array('a=1,b=2') a,1,b,2
스포츠 토토 사이트_to_matrix(스포츠 토토 사이트) 텍스트[] 얻기스포츠 토토 사이트의 키와 값 2차원 배열로 스포츠 토토 사이트_to_matrix('a=1,b=2') a,1,b,2
슬라이스(스포츠 토토 사이트, 텍스트[]) h스토어 의 하위 집합 추출h스토어 슬라이스('a=1,b=2,c=3'::스포츠 토토 사이트, ARRAY['b','c','x']) "b"="2", "c"="3"
각(스포츠 토토 사이트) setof(키 텍스트, 값 텍스트) 얻기h스토어의 키와 값 세트로 다음에서 *를 선택하세요 각각('a=1,b=2')
키 | 가치
------+-------
 | 1
 비 | 2
존재(스포츠 토토 사이트,text) 부울 합니다스포츠 토토 사이트키를 포함하고 있나요? 존재('a=1','a') t
정의됨(스포츠 토토 사이트,text) 부울 그렇습니다스포츠 토토 사이트포함 비-NULL키 값? 정의('a=NULL','a') f
삭제(스포츠 토토 사이트,text) 스포츠 토토 사이트 일치하는 키가 있는 쌍 삭제 삭제('a=1,b=2','b') "a"="1"
삭제(스포츠 토토 사이트,text[]) 스포츠 토토 사이트 일치하는 키가 있는 쌍 삭제 삭제('a=1,b=2,c=3',ARRAY['a','b']) "c"="3"
삭제(스포츠 토토 사이트,스포츠 토토 사이트) 스포츠 토토 사이트 두 번째 쌍과 일치하는 쌍을 삭제합니다. 인수 삭제('a=1,b=2','a=4,b=2'::스포츠 토토 사이트) "a"="1"
populate_record(레코드,스포츠 토토 사이트) 기록 필드 교체기록와 함께 일치하는 값:스포츠 토토 사이트 예시 섹션 참조

참고:함수populate_record실제로 선언된 내용은모든 요소, 아님기록을 첫 번째 인수로 사용하지만 런타임 오류로 레코드가 아닌 유형을 거부합니다.

F.13.3. 인덱스

스포츠 토토 사이트GiST 및 GIN 인덱스 지원 에 대한@, ?, ?&그리고?|연산자. 예를 들면:

GIST(h)를 사용하여 test스포츠 토토 사이트에서 hidx 인덱스 생성;

GIN(h)을 사용하여 test스포츠 토토 사이트에서 인덱스 hidx를 생성합니다.

스포츠 토토 사이트또한 지원합니다브트리또는해시에 대한 색인=연산자. 이것은 허용합니다스포츠 토토 사이트선언할 열고유또는 다음에 사용됨그룹별, 주문 기준또는독특식. 정렬 주문하다h스토어값은 다음과 같습니다. 특히 유용하지만 이러한 인덱스는 다음과 같은 경우에 유용할 수 있습니다. 동등성 조회. 다음에 대한 색인 생성=비교는 다음과 같습니다.

BTREE(h)를 사용하여 test스포츠 토토 사이트에서 hidx 인덱스 생성;

HASH(h)를 사용하여 test스포츠 토토 사이트에서 인덱스 hidx를 생성합니다.

F.13.4. 예

키를 추가하거나 기존 키를 새 값으로 업데이트하세요:

업데이트 탭 SET h = h || ('c' = '3');

키 삭제:

UPDATE 탭 SET h = 삭제(h, 'k1');

변환 a기록스포츠 토토 사이트:

CREATE TABLE 테스트(col1 정수, col2 텍스트, col3 텍스트);
테스트 값에 삽입(123, 'foo', 'bar');

SELECT 스포츠 토토 사이트(t) FROM 테스트 AS t;
                   스포츠 토토 사이트                    
--------------------------------
 "col1"="123", "col2"="foo", "col3"="바"
(1행)

변환스포츠 토토 사이트미리 정의된기록유형:

CREATE TABLE 테스트(col1 정수, col2 텍스트, col3 텍스트);

SELECT * FROM populate_record(null::테스트,
                              '"col1"="456", "col2"="zzz"');
 열1 | 열2 | col3 
------+------+------
  456 | zzz | 
(1행)

다음 값을 사용하여 기존 레코드 수정스포츠 토토 사이트:

CREATE TABLE 테스트(col1 정수, col2 텍스트, col3 텍스트);
테스트 값에 삽입(123, 'foo', 'bar');

SELECT (r).* FROM (SELECT t #= '"col3"="baz"' AS r FROM test t) s;
 열1 | 열2 | col3 
------+------+------
  123 | 푸 | 바즈
(1행)

F.13.5. 통계

스포츠 토토 사이트유형 때문에 본질적인 자유로움에는 다양한 키가 포함될 수 있습니다. 유효한 키를 확인하는 것은 애플리케이션의 작업입니다. 는 다음 예는 확인을 위한 몇 가지 기술을 보여줍니다. 키 및 통계 획득.

간단한 예:

SELECT * FROM Each('aaa=bq, b=NULL, ""=1');

테이블 사용:

SELECT (각(h)).key, (각(h)).value INTO stat FROM test스포츠 토토 사이트;

온라인 통계:

SELECT 키, 개수(*) FROM
  (SELECT (각(h)).key FROM test스포츠 토토 사이트) AS stat
  그룹별 키
  ORDER BY 카운트 DESC, 키;
    키 | 카운트
---------+-------
 라인 |   883
 쿼리 |   207
 위치 |   203
 노드 |   202
 공간 |   197
 상태 |   195
 공개 |   194
 제목 |   190
 조직 |   189
....................

F.13.6. 호환성

이전 버전에서 업그레이드하는 경우 버전인 경우 항상 이 모듈의 새 버전을 덤프를 복원하기 전에 데이터베이스. 그렇지 않으면 많은 새로운 기능이 이용할 수 없습니다.

PostgreSQL 9.0 기준,스포츠 토토 사이트다음을 사용합니다 이전 버전과 내부 표현이 다릅니다. 이 텍스트 이후 덤프/복원 업그레이드에 장애물이 없습니다. (덤프에 사용된) 표현은 변경되지 않습니다.

바이너리 업그레이드의 경우 상위 호환성은 새로운 코드가 이전 형식의 데이터를 인식하도록 하여 유지됩니다. 이는 처리 시 약간의 성능 저하를 수반합니다. 새 코드로 아직 수정되지 않은 데이터. 그것은 다음을 통해 테이블 열의 모든 값을 강제로 업그레이드할 수 있습니다. 하고 있는업데이트다음과 같은 진술 다음과 같습니다:

UPDATE 테이블 이름 SET 스포츠 토토 사이트col = 스포츠 토토 사이트col || '';

또 다른 방법은 다음과 같습니다:

ALTER TABLE 테이블 이름 ALTER 스포츠 토토 사이트col TYPE 스포츠 토토 사이트 USING 스포츠 토토 사이트col || '';

테이블 변경메서드에는 테이블에 대한 배타적 잠금이 있지만 부풀어오르지는 않습니다. 이전 행 버전이 있는 테이블입니다.

F.13.7. 저자

올렉 바르투노프, 모스크바, 모스크바 대학교, 러시아

테오도르 시가예프, 모스크바, Delta-Soft Ltd., 러시아

Andrew Gierth의 추가 개선 사항, 영국