이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 39.1. 쿼리 토토 꽁 머니버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

16.2. 무엇 윈 토토 트리인가요?

규칙 시스템이 어떻게 작동하는지 이해하려면 다음이 필요합니다. 언제 호출되는지, 입력과 결과가 무엇인지 알 수 있습니다.

규칙 시스템은 윈 토토 파서와 기획자. 파서의 출력, 하나의 윈 토토 트리 및 재작성 규칙은pg_rewrite카탈로그는 추가 정보도 포함된 쿼리 트리입니다. 결과로 0개 또는 여러 개의 쿼리 트리를 생성합니다. 그래서 입력과 출력은 항상 파서 자체가 생성할 수 있는 것입니다. 따라서 보는 모든 것은 기본적으로 다음과 같이 표현할 수 있습니다.SQL성명.

이제 윈 토토 트리란 무엇입니까? 내부 표현입니다 anSQL문은 그것을 만든 단일 부품은 별도로 저장됩니다. 이러한 윈 토토 시작할 때 나무가 보입니다.PostgreSQL디버그 수준 4의 백엔드 및 대화형 백엔드 인터페이스에 윈 토토를 입력합니다. 규칙 의 작업pg_rewrite시스템 카탈로그는 쿼리 트리로도 저장됩니다. 포맷되지 않았습니다 디버그 출력과 비슷하지만 정확히 동일한 내용을 포함합니다. 정보.

윈 토토 트리를 읽으려면 약간의 경험이 필요하며 이는 규칙 시스템 작업을 시작했을 때 힘든 시간을 보냈습니다. 나는 할 수 있다 내가 커피 머신 앞에 서서 커피 머신을 봤던 것을 기억해 목표 목록의 컵, 레인지 테이블의 물과 커피 가루 그리고 한정식의 모든 버튼. 이후SQL쿼리 표현 트리는 규칙 시스템을 이해하기에 충분합니다. 이 문서는 읽는 방법을 가르치지 않을 것입니다. 익히는 것이 도움이 될 수 있으며, 나중에 명명 규칙이 필요합니다. 설명.

16.2.1. 는 윈 토토 트리의 일부

읽을 때SQL이 문서의 쿼리 트리 표현은 다음과 같습니다. 진술서의 일부를 식별할 수 있어야 합니다. 쿼리 트리 구조에 있을 때 분할됩니다. 부품 쿼리 트리는 다음과 같습니다.

명령 유형

이것은 어떤 명령(SELECT, INSERT, UPDATE, DELETE)가 구문 분석 트리를 생성했습니다.

범위 테이블

범위 테이블은 사용되는 관계의 목록입니다. 쿼리에서. SELECT 문에서는 다음과 같습니다. FROM 키워드 뒤에 주어진 관계.

모든 범위 테이블 항목은 테이블이나 보기를 식별하고 다른 부분에서는 어떤 이름으로 불리는지 알려줍니다. 쿼리. 쿼리 트리에서 범위 테이블 항목은 다음과 같습니다. 이름이 아닌 색인으로 참조되므로 여기서는 중복된 이름이 있어도 상관없습니다. 에서SQL성명. 이는 규칙의 범위 테이블이 변경된 후에 발생할 수 있습니다. 병합되었습니다. 이 문서의 예제에는 이 상황.

결과 관계

이것은 다음을 식별하는 범위 테이블의 색인입니다. 쿼리 결과가 이동하는 관계입니다.

SELECT 쿼리에는 일반적으로 결과 관계가 없습니다. SELECT INTO의 특별한 경우는 대부분 다음과 동일합니다. CREATE TABLE, INSERT ... SELECT 시퀀스가 아니며 여기서 별도로 논의됩니다.

INSERT, UPDATE 및 DELETE에서 결과를 윈 토토합니다. 관계는 변경 사항이 적용되는 테이블(또는 뷰!)입니다. 효과.

대상 목록

대상 목록은 다음을 정의하는 표현식 목록입니다. 쿼리 결과. SELECT의 경우, 표현식은 최종 출력을 구성하는 것입니다. 쿼리. SELECT와 SELECT 사이의 표현식입니다. FROM 키워드. (*는 all the의 약자일 뿐입니다. 관계의 속성 이름. 에 의해 확장됩니다. 개별 속성으로 파싱하므로 규칙 시스템 본 적이 없습니다.)

DELETE 쿼리는 대상 목록이 필요하지 않습니다. 아무런 결과도 내지 마세요. 실제로 기획자는 빈 대상 목록에 특수 CTID 항목을 추가합니다. 하지만 이것은 규칙 시스템 이후에 대해서는 나중에 논의하겠습니다. 에 대한 규칙 시스템의 대상 목록이 비어 있습니다.

INSERT 쿼리에서 대상 목록은 새로운 내용을 설명합니다. 결과 관계에 들어가야 하는 행. 그것은 VALUES 절의 표현식 또는 INSERT ... SELECT의 SELECT 절. 누락된 열 결과 관계는 플래너에 의해 다음과 같이 채워집니다. 상수 NULL 표현식입니다.

업데이트 쿼리에서 대상 목록은 새 항목을 설명합니다. 이전 행을 대체해야 하는 행입니다. 규칙에서는 시스템에는 SET의 표현식만 포함됩니다. 속성 = 쿼리의 표현식 부분입니다. 기획자 다음과 같은 표현식을 삽입하여 누락된 열을 추가합니다. 이전 행의 값을 새 행에 복사합니다. 그리고 그것은 DELETE와 마찬가지로 특수 CTID 항목을 추가합니다. 너무.

대상 목록의 모든 항목에는 표현식이 포함되어 있습니다 이는 상수 값, 변수를 가리키는 변수일 수 있습니다. 범위 테이블에 있는 관계 중 하나의 속성 매개변수 또는 함수 호출로 구성된 표현식 트리 상수, 변수, 연산자 등

자격

쿼리의 자격은 다음과 매우 유사한 표현식입니다. 대상 목록 항목에 포함된 항목 중 하나입니다. 는 이 표현식의 결과 값은 다음을 나타내는 부울입니다. 다음에 대한 작업(INSERT, UPDATE, DELETE 또는 SELECT)이 최종 결과 행을 실행해야 하는지 여부입니다. 그것은 an의 WHERE 절SQL성명.

조인 트리

쿼리의 조인 트리는 FROM의 구조를 보여줍니다. 조항. SELECT FROM a, b, c와 같은 간단한 쿼리의 경우 조인 트리는 단지 FROM 항목의 목록일 뿐입니다. 어떤 순서로든 합류할 수 있습니다. 하지만 JOIN할 때 표현식 --- 특히 외부 조인 ---이 사용됩니다. 조인에 표시된 순서대로 조인해야 합니다. 조인 트리는 JOIN 표현식의 구조를 보여줍니다. 는 특정 JOIN 절과 관련된 제한 사항 (ON 또는 USING 표현식에서)은 다음과 같이 저장됩니다. 해당 조인 트리에 첨부된 자격 표현식 노드. 보관하기 편리한 것 같아요 다음에 첨부된 자격으로 최상위 WHERE 표현식 최상위 조인 트리 항목도 마찬가지입니다. 그래서 실제로 가입 tree는 FROM 및 WHERE 절을 모두 나타냅니다. 선택하세요.

기타

ORDER BY와 같은 윈 토토 트리의 다른 부분 절은 여기서 관심이 없습니다. 규칙 시스템 규칙을 적용하는 동안 해당 항목을 대체하지만 규칙의 기본 원칙과 크게 관련이 없습니다. 시스템.