이 모듈은 다음을 구현합니다.스포츠 토토 사이트데이터 단일 내에 키/값 쌍 세트를 저장하기 위한 유형포스트그레SQL값. 이것은 많은 특성이 있는 행과 같은 다양한 시나리오에 유용합니다. 거의 검사되지 않는 데이터 또는 반구조화된 데이터입니다. 열쇠와 값은 단순히 텍스트 문자열입니다.
의 텍스트 표현스포츠 토토 사이트, 입력 및 출력에 사용되며 0개 이상을 포함합니다.키 = 값다음으로 구분된 쌍 쉼표. 몇 가지 예:
k = v foo = 바, baz = 뭐든지 "1-a" = "아무거나"
쌍의 순서는 중요하지 않습니다. 출력시 재현됨). 쌍 사이 또는 주변의 공백=기호는 무시됩니다. 큰따옴표 공백, 쉼표를 포함하는 키와 값=s 또는s. 포함하려면 키나 값에 큰따옴표나 백슬래시를 사용하려면 다음을 사용하여 이스케이프 처리하세요. 백슬래시.
각 키스포츠 토토 사이트고유합니다. 만약에 당신은스포츠 토토 사이트중복 있음 키는 하나만 저장됩니다.스포츠 토토 사이트그리고 어느 쪽이 될지는 보장할 수 없습니다. 보관하세요:
SELECT 'a=1,a=2'::스포츠 토토 사이트; 스포츠 토토 사이트 ---------- "a"="1"
값(키는 제외)은 SQL일 수 있습니다.NULL. 예를 들면:
키 = NULL
그NULL키워드는 다음과 같습니다 대소문자를 구분하지 않습니다. 를 큰따옴표로 묶으세요.NULL일반 문자열로 처리"NULL".
참고:다음을 명심하세요스포츠 토토 사이트텍스트 형식, 입력에 사용되는 경우, 적용됩니다이전필요한 인용 또는 이스케이프. 전달하는 경우h스토어매개변수를 통한 리터럴, 그런 다음 추가 처리가 필요하지 않습니다. 하지만 지나가다보면 따옴표로 묶인 리터럴 상수이고 작은 따옴표 문자 및 (설정에 따라standard_conforming_strings구성 매개변수) 백슬래시 문자를 이스케이프해야 합니다. 올바르게. 참조섹션 4.1.2.1문자열 처리에 대한 자세한 내용 상수.
출력 시 큰따옴표는 항상 키와 값을 묶습니다. 꼭 필요하지 않은 경우에도 마찬가지입니다.
표 F-6.스포츠 토토 사이트연산자
| 운영자 | 설명 | 예 | 결과 |
|---|---|---|---|
| h스토어 - 텍스트 | 키 값 가져오기(NULL만일 존재하지 않음) | 'a=x, b=y'::스포츠 토토 사이트 - '아' | x |
| 스포츠 토토 사이트 - 텍스트[] | 키 값 가져오기(NULL존재하지 않는 경우) | 'a=x, b=y, c=z'::스포츠 토토 사이트 - ARRAY['c','a'] | "z","x" |
| 텍스트 = 텍스트 | 단일 쌍 만들기스포츠 토토 사이트 | 'a' = 'b' | "a"="b" |
| 스포츠 토토 사이트 || 스포츠 토토 사이트 | 연결h스토어s | 'a=b, c=d'::스포츠 토토 사이트 || 'c=x, d=q'::스포츠 토토 사이트 | "a"="b", "c"="x", "d"="q" |
| 스포츠 토토 사이트 ? 텍스트 | 그렇습니다h스토어키를 포함하고 있나요? | 'a=1'::스포츠 토토 사이트 ? 'a' | t |
| 스포츠 토토 사이트 ?& 텍스트[] | 그렇습니다h스토어모두 포함 지정된 키? | 'a=1,b=2'::스포츠 토토 사이트 ?& ARRAY['a','b'] | t |
| 스포츠 토토 사이트 ?| 텍스트[] | 그렇습니다스포츠 토토 사이트다음 중 하나 포함 지정된 키? | 'a=1,b=2'::스포츠 토토 사이트 ?| 배열['b','c'] | t |
| 스포츠 토토 사이트 @ 스포츠 토토 사이트 | 왼쪽 피연산자에 오른쪽이 포함되어 있습니까? | '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스토어 | 변환스포츠 토토 사이트배열에 키와 값을 교대로 사용 | %% 'a=푸, b=바'::스포츠 토토 사이트 | a,foo,b,bar |
| %# 스포츠 토토 사이트 | 변환스포츠 토토 사이트에 2차원 키/값 배열 | %# 'a=푸, b=바'::스포츠 토토 사이트 | a,foo,b,bar |
참고:PostgreSQL 8.2 이전에는 격리가 연산자@그리고<@소명되었습니다@그리고~입니다. 이 이름들 여전히 사용 가능하지만 더 이상 사용되지 않으며 결국에는 사용 가능하게 됩니다. 제거됩니다. 이전 이름이 이전에는 핵심 기하학적 데이터가 뒤따르는 관례 종류!
참고:그=연산자 더 이상 사용되지 않으며 향후 릴리스에서 제거될 수 있습니다. 사용스포츠 토토 사이트(텍스트, 텍스트)함수 대신.
표 F-7.h스토어기능
| 기능 | 반환 유형 | 설명 | 예 | 결과 |
|---|---|---|---|---|
스포츠 토토 사이트(기록) |
스포츠 토토 사이트 | 구성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" |
스포츠 토토 사이트(텍스트,
텍스트) |
스포츠 토토 사이트 | 단일 항목 만들기h스토어 | 스포츠 토토 사이트('a', 'b') | "a"="b" |
akeys(스포츠 토토 사이트) |
텍스트[] | 얻기스포츠 토토 사이트의 키를 배열 | 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 |
슬라이스(스포츠 토토 사이트,
텍스트[]) |
스포츠 토토 사이트 | 의 하위 집합 추출스포츠 토토 사이트 | 슬라이스('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실제로 선언된 내용은모든 요소, 아님기록를 첫 번째 인수로 사용하지만 런타임 오류로 레코드가 아닌 유형을 거부합니다.
스포츠 토토 사이트GiST 및 GIN 인덱스 지원 에 대한@, ?, ?&그리고?|연산자. 예를 들면:
GIST(h)를 사용하여 test스포츠 토토 사이트에서 hidx 인덱스 생성; GIN(h)을 사용하여 test스포츠 토토 사이트에서 인덱스 hidx를 생성합니다.
스포츠 토토 사이트또한 지원합니다브트리또는해시에 대한 색인=연산자. 이것은 허용합니다스포츠 토토 사이트선언할 열고유, 또는 다음에 사용됨그룹별, 주문 기준또는독특식. 정렬 주문하다스포츠 토토 사이트값은 다음과 같습니다. 특히 유용하지만 이러한 인덱스는 다음과 같은 경우에 유용할 수 있습니다. 동등성 조회. 다음에 대한 색인 생성=비교는 다음과 같습니다.
BTREE(h)를 사용하여 test스포츠 토토 사이트에서 hidx 인덱스 생성; HASH(h)를 사용하여 test스포츠 토토 사이트에서 인덱스 hidx를 생성합니다.
키를 추가하거나 기존 키를 새 값으로 업데이트하세요:
업데이트 탭 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행)
그스포츠 토토 사이트유형 때문에 본질적인 자유로움에는 다양한 키가 포함될 수 있습니다. 유효한 키를 확인하는 것은 애플리케이션의 작업입니다. 는 다음 예는 확인을 위한 몇 가지 기술을 보여줍니다. 키 및 통계 획득.
간단한 예:
SELECT * FROM Each('aaa=bq, b=NULL, ""=1');
테이블 사용:
SELECT (각(h)).key, (각(h)).value INTO stat FROM test스포츠 토토 사이트;
온라인 통계:
선택 키, 개수(*) FROM
(SELECT (각(h)).key FROM test스포츠 토토 사이트) AS stat
그룹별 키
ORDER BY 카운트 DESC, 키;
키 | 카운트
---------+-------
라인 | 883
쿼리 | 207
위치 | 203
노드 | 202
공간 | 197
상태 | 195
공개 | 194
제목 | 190
조직 | 189
....................
이전 버전에서 업그레이드하는 경우 버전인 경우 항상 이 모듈의 새 버전을 덤프를 복원하기 전에 데이터베이스. 그렇지 않으면 많은 새로운 기능이 이용할 수 없습니다.
PostgreSQL 9.0 기준,스포츠 토토 사이트다음을 사용합니다 이전 버전과 내부 표현이 다릅니다. 이 텍스트 이후 덤프/복원 업그레이드에 장애물이 없습니다. (덤프에 사용된) 표현은 변경되지 않습니다.
바이너리 업그레이드의 경우 상위 호환성은 새로운 코드가 이전 형식의 데이터를 인식하도록 하여 유지됩니다. 이는 처리 시 약간의 성능 저하를 수반합니다. 새 코드로 아직 수정되지 않은 데이터. 그것은 다음을 통해 테이블 열의 모든 값을 강제로 업그레이드할 수 있습니다. 하고 있는업데이트다음과 같은 진술 다음과 같습니다:
UPDATE 테이블 이름 SET 스포츠 토토 사이트col = 스포츠 토토 사이트col || '';
또 다른 방법은 다음과 같습니다:
ALTER TABLE 테이블 이름 ALTER 스포츠 토토 사이트col TYPE 스포츠 토토 사이트 USING 스포츠 토토 사이트col || '';
그테이블 변경메서드에는 테이블에 대한 배타적 잠금이 있지만 부풀어오르지는 않습니다. 이전 행 버전이 있는 테이블입니다.
올렉 바르투노프<oleg@sai.msu.su,
모스크바, 모스크바 대학교, 러시아
테오도르 시가예프<teodor@sigaev.ru,
모스크바, Delta-Soft Ltd., 러시아
Andrew Gierth의 추가 개선 사항<andrew@tao11.riddles.org.uk,
영국