무지개 토토 데이터 유형은 무지개 토토 (javaScript 객체 표기법) 데이터를 저장하는 것입니다.RFC 7159. 이러한 데이터는로 저장 될 수 있습니다.텍스트
, 그러나 무지개 토토 데이터 유형은 무지개 토토 규칙에 따라 각 저장된 값이 유효하다는 것을 시행 할 수 있습니다. 또한 이러한 데이터 유형에 저장된 데이터에 사용할 수있는 다양한 무지개 토토- 특이 적 기능 및 연산자가 있습니다. 보다무지개 토토 베이 3_[,2,3]23.
postgresql무지개 토토 데이터 저장을위한 두 가지 유형을 제공합니다 :무지개 토토
and무지개 토토B
. 이러한 데이터 유형에 대한 효율적인 쿼리 메커니즘을 구현하려면postgresql또한 제공무지개 토토PATH
설명 된 데이터 유형섹션 8.14.6.
the무지개 토토
and무지개 토토B
데이터 유형 수락거의입력과 동일한 값 세트. 실질적인 차이점은 효율성 중 하나입니다. 그만큼무지개 토토
데이터 유형은 입력 텍스트의 정확한 사본을 저장하며, 이는 각 실행에 따라 처리 함수가 다시 시작되어야합니다. 하는 동안무지개 토토B
데이터는 분해 된 이진 형식으로 저장되어 전환 오버 헤드가 추가되어 입력이 약간 느려지지만 재구성이 필요하지 않기 때문에 처리하기가 훨씬 빠릅니다.무지개 토토B
또한 인덱싱을 지원합니다. 이는 상당한 이점이 될 수 있습니다.
왜냐하면무지개 토토
입력 입력 텍스트의 정확한 사본을 저장하면, 토큰 사이의 의미 적으로 유의 한 공백과 무지개 토토 객체 내의 키 순서를 보존합니다. 또한 값의 무지개 토토 객체에 동일한 키가 두 번 이상 포함되면 모든 키/값 쌍이 유지됩니다. (처리 함수는 마지막 값을 조작 값으로 간주합니다.) 대조적으로무지개 토토B
공백을 보존하지 않고 객체 키의 순서를 보존하지 않으며 중복 객체 키를 유지하지 않습니다. 중복 키가 입력에 지정되면 마지막 값 만 유지됩니다.
일반적으로 대부분의 응용 프로그램은 무지개 토토 데이터를로 저장하는 것을 선호해야합니다.무지개 토토B
, 객체 키 순서에 대한 레거시 가정과 같은 전문적인 요구가 없다면.
PostgreSQL데이터베이스 당 하나의 문자 세트 만 인코딩 할 수 있습니다. 따라서 데이터베이스 인코딩이 UTF8이 아닌 한 무지개 토토 유형은 무지개 토토 사양에 엄격하게 준수 할 수 없습니다. 데이터베이스 인코딩에 표시 할 수없는 문자를 직접 포함시키려는 시도는 실패합니다. 반대로, 데이터베이스 인코딩에서 표현할 수 있지만 UTF8에서는 그렇지 않은 문자가 허용됩니다.
RFC 7159 무지개 토토 스트링은 유니 코드 이스케이프 시퀀스를 포함 할 수 있습니다.\ u
. 의 입력 함수에서xxxx
무지개 토토
유형, 유니 코드 탈출은 데이터베이스 인코딩에 관계없이 허용되며 구문 적 정확성에 대해서만 확인됩니다 (즉, 4 개의 16 진수 숫자가 따릅니다\ u
). 그러나에 대한 입력 함수무지개 토토B
더욱 엄격합니다 : 비 ASCII 문자에 대한 유니 코드 탈출을 방해합니다 (위U+007f
) 데이터베이스 인코딩이 UTF8이 아닌 한. 그만큼무지개 토토B
유형도 거부\ u0000
PostgreSQL's텍스트
type), 유니 코드 기본 다국어 평면 외부의 문자를 지정하기 위해 유니 코드 대리 쌍을 사용하는 것이 정확하다고 주장합니다. 유효한 유니 코드 이스케이프는 스토리지와 동등한 ASCII 또는 UTF8 문자로 변환됩니다. 여기에는 단일 문자로 대리 쌍을 접는 것이 포함됩니다.
많은 무지개 토토 처리 기능에 설명 된무지개 토토 베이 3_[,2,3]23유니 코드 이스케이프를 일반 문자로 변환하므로 입력이 유형 인 경우에도 설명하는 동일한 유형의 오류를 던질 것입니다무지개 토토
아님무지개 토토B
. 사실무지개 토토
입력 함수는 이러한 점검이 역사적 아티팩트로 간주 될 수 있지만, 비우프 8 데이터베이스 인코딩에서 무지개 토토 유니 코드 탈출의 간단한 스토리지 (처리없이)를 허용 할 수 있습니다. 일반적으로 무지개 토토에서 유니 코드 탈출을 비 UTF8 데이터베이스 인코딩과 혼합하는 것을 피하는 것이 가장 좋습니다.
텍스트 무지개 토토 입력을 변환 할 때무지개 토토B
RFC7159는 효과적으로 네이티브에 매핑됩니다postgresql유형, 참조표 8.23. 따라서 유효한 구성 요소에 대한 약간의 추가 제약이 있습니다무지개 토토B
|무지개 토토
기본 데이터 유형으로 표현할 수있는 내용에 대한 제한에 해당하는 초록의 유형 또는 무지개 토토에. 특히,무지개 토토B
외부에있는 숫자를 거부합니다.postgresql 숫자
데이터 유형, while무지개 토토
그렇지 않습니다. 이러한 구현 정의 제한은에 의해 허용됩니다.RFC7159. 그러나 실제로 이러한 문제는 무지개 토토을 대표하는 것이 일반적이므로 다른 구현에서 발생할 가능성이 훨씬 높습니다.번호
IEEE 754 이중 정밀 부유 포인트로의 원시 유형 (whoRFC7159 명시 적으로 예상하고 허용합니다). 무지개 토토을 이러한 시스템과의 교환 형식으로 사용하는 경우 원래 저장된 데이터에 비해 숫자 정밀도를 잃을 위험이PostgreSQL고려해야합니다.
반대로, 테이블에 언급 된 바와 같이, 해당 무지개 토토 원시 유형의 입력 형식에 약간의 제한이 있습니다PostgreSQL타입.
16668_16731PostgreSQLtype
무지개 토토 원시 유형 | PostgreSQL타입 | 노트 |
---|---|---|
String |
텍스트 |
\ u0000 데이터베이스 인코딩이 UTF8이 아닌 경우 비 ASCII 유니 코드 탈출과 마찬가지로 허용되지 않습니다. |
번호 |
숫자 |
NAN andInfinity 값은 허용되지 않습니다 |
부울 |
부울 |
소문자 만true and거짓 철자가 허용됩니다 |
null |
(없음) | SQLNULL 다른 개념입니다 |
무지개 토토 데이터 유형의 입력/출력 구문은RFC 7159.
다음은 모두 유효합니다무지개 토토
(또는무지개 토토B
) 표현 :
- 간단한 스칼라/원시 값 - 원시 값은 숫자, 인용 문자열, 참, 거짓 또는 null 일 수 있습니다. 선택 '5':: 무지개 토토; - 0 이상의 요소 배열 (요소가 같은 유형 일 필요는 없음) '[1, 2, "foo", null] :: json을 선택하십시오. - 키와 값 쌍을 포함하는 객체 - 객체 키는 항상 문자열이어야합니다. 선택 ' "bar": "baz", "balance": 7.77, "active": false':: json; - 배열 및 객체는 임의로 중첩 될 수 있습니다 ' "foo": [true, "bar"], "tags": "a": 1, "b": null':: json;를 선택하십시오.
앞에서 언급했듯이 무지개 토토 값이 입력 된 다음 추가 처리없이 인쇄 할 때무지개 토토
입력 한 것과 동일한 텍스트를 출력하는 동안무지개 토토B
whitespace와 같은 의미 적으로 유의 한 세부 사항을 보존하지 않습니다. 예를 들어, 차이점에 주목하십시오.
선택 ' "bar": "baz", "balance": 7.77, "active": false':: json; 무지개 토토 ------------------------------------------------------------- "bar": "baz", "balance": 7.77, "active": false
주목할만한 의미있는 세부 사항 중 하나는입니다.무지개 토토B
, 숫자는 기본 행동에 따라 인쇄됩니다숫자
타입. 실제로 이것은 숫자로 입력 된 숫자를 의미합니다.e
표기법은 예를들없이 인쇄됩니다.
선택 ' "읽기": 1.230e-5':: json, ' "reading": 1.230e-5':: jsonb; 무지개 토토 | 무지개 토토B ----------------------------------------------------------- "읽기": 1.230e-5 | "읽기": 0.00001230
그러나무지개 토토B
이 예에서 볼 수 있듯이 평등 점검과 같은 목적으로 의미 적으로 중요하지 않더라도이 예에서 볼 수 있듯이 후행 분수 제로를 보존 할 것입니다.
무지개 토토 값을 구성하고 처리 할 수있는 내장 기능 및 운영자 목록의 경우 참조무지개 토토 베이 3_[,2,3]23.
데이터를 무지개 토토으로 표현하는 것은 요구 사항이 유동적 인 환경에서 매력적인 기존 관계 데이터 모델보다 상당히 유연 할 수 있습니다. 동일한 응용 프로그램 내에서 두 가지 접근 방식이 공존하고 서로를 보완 할 수 있습니다. 그러나 최대 유연성이 필요한 애플리케이션의 경우에도 무지개 토토 문서는 다소 고정 된 구조를 갖는 것이 좋습니다. 구조는 일반적으로 강화되지 않지만 (일부 비즈니스 규칙을 선언 적으로 시행 할 수 있지만) 예측 가능한 구조를 사용하면 세트를 유용하게 요약하는 쿼리를 쉽게 작성하는 것이 더 쉽습니다.“문서”(Datums) 테이블
무지개 토토 데이터는 테이블에 저장 될 때 다른 데이터 유형과 동일한 동시성 제어 고려 사항이 적용됩니다. 큰 문서를 저장하는 것이 실제로 가능하지만, 모든 업데이트는 전체 행에서로드 레벨 잠금을 취득합니다. 업데이트 거래 간의 잠금 경합을 줄이기 위해 무지개 토토 문서를 관리 가능한 크기로 제한하는 것을 고려하십시오. 이상적으로, 무지개 토토 문서는 각각 비즈니스 규칙이 독립적으로 수정 될 수있는 더 작은 데이텀으로 합리적으로 세분화 될 수없는 원자 기준을 나타내야합니다.
무지개 토토B
격리 및 존재테스트격리의 중요한 기능입니다.무지개 토토B
. 에 대한 평행 시설 세트가 없습니다.무지개 토토
타입. 격리는 하나 의지 테스트합니다무지개 토토B
문서에는 다른 내용이 포함되어 있습니다. 이 예제는 언급 된대로 다음을 제외하고 참으로 반환됩니다.
- 간단한 스칼라/원시 값은 동일한 값 만 포함합니다.
' "foo"':: jsonb @ ' "foo"':: jsonb를 선택하십시오.
- 오른쪽의 배열은 왼쪽의 배열 내에 포함되어 있습니다.
'[1, 2, 3]':: jsonb @ '[1, 3]':: jsonb를 선택하십시오.
- 배열 요소의 순서는 중요하지 않으므로 이것은 사실입니다.
'[1, 2, 3]':: 무지개 토토B @ '[3, 1]':: 무지개 토토B;
- 중복 배열 요소도 중요하지 않습니다.
'[1, 2, 3]':: 무지개 토토B @ '[1, 2, 2] :: 무지개 토토B를 선택하십시오.
- 오른쪽에 단일 쌍이있는 객체가 포함되어 있습니다.
- 왼쪽의 물체 내에서 :
' "product": "postgresql", "버전": 9.4, "jsonb": true':: jsonb @ ' "버전": 9.4':: jsonb;
- 오른쪽의 배열은입니다.not- 비슷한 배열이 그 안에 중첩되어 있어도 왼쪽의 배열 :
'[1, 2, [1, 3]]':: jsonb @ '[1, 3] :: jsonb; - 거짓을 생성합니다
- 그러나 둥지 층이 있으면 포함됩니다.
'[1, 2, [1, 3]]':: 무지개 토토B @ '[[1, 3]]':: 무지개 토토B;
- 마찬가지로, 격리는 여기에보고되지 않습니다.
' "foo": "bar": "baz"':: jsonb @ ' "baz": "baz"':: jsonb; - 거짓을 생성합니다
-최상위 키와 빈 객체가 포함되어 있습니다.
' "foo": "bar": "baz"':: jsonb @ ' "foo": ':: jsonb;를 선택하십시오.
일반적인 원칙은 포함 된 객체가 포함 된 객체가 포함 된 배열 요소 또는 포함 객체에서 객체 키/값 쌍을 폐기 한 후에 포함 된 객체와 구조 및 데이터 내용과 일치해야한다는 것입니다. 그러나 배열 요소의 순서는 격리 일치를 할 때 중요하지 않으며 중복 배열 요소는 한 번만 효과적으로 고려됩니다.
구조가 일치해야한다는 일반적인 원칙에 대한 특별한 예외로서 배열에는 원시적 값이 포함될 수 있습니다.
-이 배열은 원시 문자열 값을 포함합니다. '[ "foo", "bar"]':: jsonb @ ' "bar"':: jsonb를 선택하십시오. -이 예외는 상호 적이 아닙니다.-비 함유는 다음과 같습니다. ' "bar"':: jsonb @ '[ "bar"]':: jsonb를 선택하십시오. - 거짓
무지개 토토B
또한존재운영자, 이는 격리 주제의 변형 : 문자열이 (a로 주어진지 테스트합니다.텍스트
value)의 상단 레벨에서 객체 키 또는 배열 요소로 나타납니다.무지개 토토B
값. 이 예제는 언급 된대로 다음을 제외하고 참으로 반환됩니다.
- 문자열은 배열 요소로 존재합니다. '[ "foo", "bar", "baz"]':: jsonb를 선택하십시오. '술집'; - 문자열은 객체 키로 존재합니다. ' "foo": "bar"':: 무지개 토토B를 선택하십시오. 'foo'; - 객체 값은 고려되지 않습니다. ' "foo": "bar"':: 무지개 토토B를 선택하십시오. '술집'; - 거짓을 생성합니다 - 격리와 마찬가지로 존재는 최상위 수준에서 일치해야합니다. ' "foo": "bar": "baz"':: 무지개 토토B를 선택하십시오. '술집'; - 거짓을 생성합니다 - 프리미티브 무지개 토토 문자열과 일치하는 경우 문자열이 존재하는 것으로 간주됩니다. ' "foo"':: 무지개 토토B를 선택하십시오. 'foo';
무지개 토토 객체는 많은 키나 요소가있을 때 격리 또는 존재를 테스트하기 위해 배열보다 더 적합합니다. 배열과 달리 검색을 위해 내부적으로 최적화되어 있고 선형으로 검색 할 필요가 없기 때문입니다..
무지개 토토 격리가 중첩되어 있으므로 적절한 쿼리는 명시적인 하위 관류 선택을 건너 뛸 수 있습니다. 예를 들어, 우리에게가 있다고 가정합니다.doc
최상위에 개체를 포함하는 열 대부분의 객체가 포함되어 있습니다태그
하위 객체 배열이 포함 된 필드. 이 쿼리는 서브 객체가 두 가지를 포함하는 항목을 찾습니다."용어": "파리"
및"용어": "음식"
나타나면서 외부에서 그러한 키를 무시하면서 나타납니다.태그
배열 :
웹 사이트에서 doc- 'site_name'을 선택하십시오 여기서 doc @ ' "tags": [ "term": "paris", "term": "food"]';
예를 들어, 같은 것을 성취 할 수 있습니다.
웹 사이트에서 doc- 'site_name'을 선택하십시오 여기서 doc- 'tag' @ '[ "term": "Paris", "term": "food"]';
그러나 그 접근법은 덜 유연하고 종종 덜 효율적입니다.
반면에 무지개 토토 존재 연산자는 중첩되지 않았습니다. 무지개 토토 값의 최상위 레벨에서 지정된 키 또는 배열 요소 만 찾습니다.
다양한 격리 및 존재 운영자와 다른 모든 무지개 토토 연산자 및 기능이 문서화되어 있습니다.무지개 토토 베이 3_[,2,3]23.
무지개 토토B
인덱싱진 인덱스는 많은 수의 내에서 발생하는 키 또는 키/값 쌍을 효율적으로 검색하는 데 사용될 수 있습니다.무지개 토토B
문서 (Datums). 두 진“운영자 클래스”다른 성능과 유연성 트레이드 오프를 제공합니다.
기본 진 연산자 클래스무지개 토토B
Key-Exists 연산자와의 쿼리 지원?
, ? |
and? &
, 격리 연산자@
및무지개 토토PATH
일치 연산자@?
및@@
. (이 운영자가 구현 한 의미론에 대한 자세한 내용은 참조표 9.45.)이 연산자 클래스와 인덱스를 생성하는 예는 다음과 같습니다.
gin (jdoc)을 사용하여 API에서 색인 Idxgin 생성;
비 디펜트 진 운영자 클래스무지개 토토B_PATH_OPS
핵심 연산자를 지원하지 않지만 지원합니다@
, @?
and@@
. 이 연산자 클래스로 인덱스를 만드는 예는 다음과 같습니다.
gin (jdoc jsonb_path_ops)을 사용하여 API에서 index idxginp 만들기;
문서화 된 스키마 정의와 함께 타사 웹 서비스에서 검색된 무지개 토토 문서를 저장하는 테이블의 예를 고려하십시오. 일반적인 문서는 다음과 같습니다.
"GUID": "9C36ADC1-7FB5-4D5B-83B4-90356A46061A", "이름": "Angela Barton", "is_active": 사실, "회사": "magnafone", "주소": "178 Howard Place, Gulf, Washington, 702", "등록": "2009-11-07T08 : 53 : 22 +08 : 00", "위도": 19.793713, "경도": 86.513373, "태그": [ "enim", "aliquip", "Qui" ]]
우리는이 문서를 이름에 보관합니다.API
, in무지개 토토B
열이라는 열jdoc
. 이 열에서 진 인덱스가 생성되면 다음과 같은 쿼리는 색인을 사용할 수 있습니다.
- 키 "회사"가 가치 "magnafone"을 가진 문서 찾기 JDOC- 'GUID', JDOC- 'Name'을 선택하여 API에서 jdoc @ ' "회사": "magnafone"';를 선택하십시오.
그러나 연산자이기 때문에 다음과 같은 쿼리에는 인덱스를 사용할 수 없습니다?
색인이 가능하며 색인 된 열에 직접 적용되지 않습니다JDOC
:
- 키 "태그"에 키 또는 배열 요소 "qui"가 포함 된 문서 찾기 JDOC- 'GUID', JDOC- '이름'을 선택하여 API에서 JDOC- 'TAGS'를 선택하십시오. 'qui';
여전히 표현식 인덱스를 적절하게 사용하면 위의 쿼리가 인덱스를 사용할 수 있습니다. 내 특정 항목에 대한 쿼리 인 경우"태그"
키는 일반적입니다. 이와 같이 인덱스를 정의하는 것이 가치가있을 수 있습니다 :
gin을 사용하여 API에서 index idxgintags 생성 ((jdoc - 'tags');
지금,여기서
절jdoc- 'tags'? 'qui'
인덱스 가능한 연산자의 응용 프로그램으로 인식됩니다?
색인 표현식jdoc- 'tags'
. (표현 인덱스에 대한 자세한 내용은 참조 할 수 있습니다.롤 무지개 토토 : 문서 : 12 : 11.7. 표현에 대한 색인.)
쿼리에 대한 또 다른 접근 방식은 격리를 악용하는 것입니다.
- 키 "태그"가 배열 요소 "qui"를 포함하는 문서 찾기 jdoc- 'guid', jdoc- 'name'을 선택하여 api @ ' "tags": [ "qui"]';
jdoc
열 에서이 쿼리를 지원할 수 있습니다. 그러나 그러한 색인은 모든 키의 사본과에을 저장합니다.JDOC
열, 이전 예제의 표현식 인덱스는에서 발견 된 데이터 만 저장합니다.태그
키. Simple-Index 접근 방식은 훨씬 유연하지만 (모든 키에 대한 쿼리를 지원하므로) 대상 표현식 인덱스는 단순한 인덱스보다 검색이 더 작고 빠를 수 있습니다..
진 인덱스도 지원합니다@?
and@@
작동하는 연산자무지개 토토PATH
일치. 예는입니다.
jdoc- 'Guid', jdoc- 'name'을 API에서 jdoc @? '$ .tags [*]? (@ == "qui") ';
JDOC- 'GUID', JDOC- '이름'을 선택하여 aPI에서 jdoc @@ '$ .tags [*] == "qui"';
이 연산자의 경우 진 지수는 양식의 조항을 추출합니다
OUTAccessors_chain
=Constant
무지개 토토PATH
패턴 및이 조항에 언급 된 키와 값을 기반으로 인덱스 검색을 수행합니다. 액세서 체인에는.
, 키
[*]
및[
액세서. 그만큼색인
]무지개 토토B_OPS
운영자 클래스도 지원.*
및.**
액세서리이지만무지개 토토B_PATH_OPS
운영자 클래스는.
비록무지개 토토B_PATH_OPS
운영자 클래스는 쿼리 만 지원합니다.@
, @?
및@@
운영자, 기본 연산자 클래스에 비해 주목할만한 성능 이점이 있습니다무지개 토토B_OPS
. 에이무지개 토토B_PATH_OPS
색인은 일반적으로 a보다 훨씬 작습니다.무지개 토토B_OPS
동일한 데이터를 통해 인덱스를 표시하면 검색의 특이성이 특히 쿼리에 데이터에 자주 나타나는 키가 포함 된 경우 더 좋습니다. 따라서 검색 작업은 일반적으로 기본 연산자 클래스보다 더 잘 수행됩니다.
a의 기술적 차이무지개 토토B_OPS
및 A무지개 토토B_PATH_OPS
Gin Index는 전자가 각 키에 대한 독립적 인덱스 항목과 데이터의 값을 생성하는 반면, 후자는 데이터의 각 값에 대해 인덱스 항목 만 생성한다는 것입니다..[6]기본적으로 각무지개 토토B_PATH_OPS
색인 항목은 값의 해시이며이를 이끌어냅니다. 예를 들어 색인"foo": "bar": "baz"
foo
, bar
및BAZ
해시 값으로. 따라서이 구조를 찾는 격리 쿼리는 매우 구체적인 색인 검색을 초래할 것입니다. 그러나 전혀 알 수있는 방법이 없습니다foo
열쇠로 나타납니다. 반면에, a무지개 토토B_OPS
index는 대표하는 3 개의 색인 항목을 생성합니다foo
, bar
및BAZ
별도로; 그런 다음 격리 쿼리를 수행하려면 세 가지 항목 모두가 포함 된 행을 찾습니다. GIN 인덱스는 그러한 AN을 수행하고 검색을 상당히 효율적으로 수행 할 수 있지만, 여전히 그와 동등한 것보다 덜 구체적이고 느리게무지개 토토B_PATH_OPS
검색, 특히 세 가지 색인 항목 중 하나를 포함하는 매우 많은 행이있는 경우
의 단점무지개 토토B_PATH_OPS
접근 방식은 값과 같은 값을 포함하지 않는 무지개 토토 구조에 대한 인덱스 항목을 생성하지 않는다는 것입니다."a":
. 이러한 구조가 포함 된 문서를 검색하는 경우 전체 인덱스 스캔이 필요합니다. 이는 매우 느립니다.무지개 토토B_PATH_OPS
따라서 종종 그러한 검색을 수행하는 응용 프로그램에 적합하지 않습니다.
무지개 토토B
지원btree
andHASH
인덱스. 이는 일반적으로 완전한 무지개 토토 문서의 평등을 확인하는 것이 중요하다면 유용합니다. 그만큼btree
주문무지개 토토B
Datums는 큰 관심의 거의 없지만 완전성은 다음과 같습니다.
개체
배열
부울
번호
String
NULL
n 쌍을 가진 객체
n -1 쌍을 가진 물체
n 요소가있는 배열
n -1 요소가있는 배열
쌍의 수가 같은 객체는 순서대로 비교됩니다.
키 -1
,value-1
,key-2
...
객체 키는 스토리지 순서로 비교됩니다. 특히, 더 짧은 키가 더 긴 키 전에 저장되므로 :과 같은 직관적이지 않은 결과로 이어질 수 있습니다.
"aa": 1, "c": 1 "b": 1, "d": 1
마찬가지로, 요소의 수가 같은 배열은 순서대로 비교됩니다.
Element-1
,Element-2
...
원시 무지개 토토 값은 기본과 동일한 비교 규칙을 사용하여 비교됩니다PostgreSQL데이터 유형. 문자열은 기본 데이터베이스 Collation을 사용하여 비교됩니다.
|무지개 토토B
다른 절차 언어를 입력하십시오.
pl/perl의 확장자는입니다.무지개 토토B_PLPERL
and무지개 토토B_PLPERLU
. 사용하면무지개 토토B
값은 적절하게 Perl 어레이, 해시 및 스칼라에 매핑됩니다.
PL/Python의 확장자를무지개 토토B_PLPYTHONU
, 무지개 토토B_PLPYTHON2U
및무지개 토토B_PLPYTHON3U
(참조PostgreSQL : 문서 : 12 : 45.1. 젠 토토 2 vs. 젠PL/Python 이름 지정 규칙). 사용하면무지개 토토B
값은 Python 사전, 목록 및 스칼라에 매핑됩니다.
the무지개 토토PATH
유형은 SQL/무지개 토토 경로 언어에 대한 지원을 구현합니다PostgreSQL무지개 토토 데이터를 효율적으로 쿼리하려면. SQL/무지개 토토 쿼리 기능으로 추가 처리하기 위해 무지개 토토 데이터에서 경로 엔진에 의해 검색 될 항목을 지정하는 구문 분석 된 SQL/무지개 토토 경로 표현식의 이진 표현을 제공합니다..
SQL/무지개 토토 경로의 의미론은 일반적으로 SQL을 따릅니다. 동시에 무지개 토토 데이터를 사용하는 가장 자연스러운 방법을 제공하기 위해 SQL/무지개 토토 PATH 구문은 일부 JavaScript 컨벤션을 사용합니다.
dot (.
) 멤버 액세스에 사용됩니다.
스퀘어 브래킷 ([]
) 배열 액세스에 사용됩니다.
SQL/무지개 토토 어레이는 1부터 시작하는 일반 SQL 어레이와 달리 0 관계입니다.
SQL/무지개 토토 경로 표현식은 일반적으로 SQL 쿼리로 SQL 문자열 리터럴로 작성되므로 단일 따옴표로 둘러싸여 있어야하며 값 내에서 원하는 단일 따옴표는 두 배가되어야합니다 (참조섹션 4.1.2.1). 경로 표현식의 일부 형태는 그 안에 문자열 리터럴이 필요합니다. 이 내장 된 문자 리터럴은 JavaScript/ecmascript 컨벤션을 따릅니다. 이중 인용문으로 둘러싸여 있어야하며, 백 슬래시 탈출은 그 안에 사용될 수 있습니다. 특히, 임베디드 스트링 문자 내에서 이중 견적을 쓰는 방법은입니다.\ "
, 그리고 백 슬래시 자체를 작성하려면\\
. 다른 특수 백 슬래시 시퀀스는 JavaScript 문자열로 인식되는 것들이 포함됩니다.\ b
, \ f
, \ n
, \ r
, \ t
, \ V
다양한 ASCII 제어 문자의 경우\ x
두 개의 16 진수로 작성된 문자 코드의 경우NN
\ u
4-Hex-Digit 코드 포인트로 식별 된 유니 코드 문자 및nnnn
\ u
1 ~ 6 개의 16 진수로 작성된 유니 코드 문자 코드 포인트의 경우n ...
경로 표현식은 다음과 같은 일련의 경로 요소로 구성됩니다.
무지개 토토 원시 유형의 경로 리터럴 : 유니 코드 텍스트, 숫자, True, False 또는 Null.
경로 변수에 나열표 8.24.
Accessor 연산자에 등재표 8.25.
무지개 토토PATH
운영자 및 메소드에 나열된섹션 9.15.2.3
괄호, 필터 표현식을 제공하거나 경로 평가 순서를 정의하는 데 사용할 수 있습니다.
사용에 대한 자세한 내용무지개 토토PATH
SQL/무지개 토토 쿼리 기능이있는 표현식, 참조섹션 9.15.2.
표 8.24. 무지개 토토PATH
변수
가변 | 설명 |
---|---|
$ |
쿼리 할 무지개 토토 텍스트를 나타내는 변수 (컨텍스트 항목). |
$ varname |
a 지명 변수. 그 값은 매개 변수에 의해 설정 될 수 있습니다vars 여러 무지개 토토 처리 기능. 보다표 9.47및 자세한 내용은 메모입니다. |
@ |
필터 표현식에서 경로 평가 결과를 나타내는 변수. |
표 8.25. 무지개 토토PATH
Accessors
액세서 연산자 | 설명 |
---|---|
|
지정된 키가있는 객체 멤버를 반환하는 멤버 액세서. 키 이름이로 시작하는 지명 변수 인 경우 |
|
현재 객체의 최상위 레벨에있는 모든 멤버의 값을 반환하는 WildCard 회원 액세서. |
|
현재 객체의 무지개 토토 계층 구조를 처리하고 둥지 레벨에 관계없이 모든 멤버 값을 반환하는 재귀 와일드 카드 멤버 액세서. 이것은입니다.PostgreSQLSQL/무지개 토토 표준 확장. |
|
동일 |
|
배열 요소 액세서. 지정된 |
|
모든 배열 요소를 반환하는 와일드 카드 어레이 요소 액세서. |