Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 7.3 / 7.2
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong kèo bóng đá cúp c2 phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

38.1. Các kèo bóng đá cúp c2 cây

Để hiểu làm thế nào hệ thống quy tắc hoạt động, cần phải biết Khi nó được gọi và đầu vào và kết quả của nó là gì.

Hệ thống quy tắc nằm giữa trình phân tích cú pháp và người lập kế hoạch. Nó lấy đầu ra của trình phân tích cú pháp, một cây kèo bóng đá cúp c2 và Các quy tắc viết lại do người dùng xác định, cũng là những cây kèo bóng đá cúp c2 với một số Kết quả là thông tin bổ sung và tạo ra không hoặc nhiều cây kèo bóng đá cúp c2. Vì vậy, đầu vào và đầu ra của nó luôn là những thứ mà bản thân trình phân tích cú pháp có thể đã được sản xuất và do đó, bất cứ điều gì nó thấy về cơ bản là đại diện như mộtSQLcâu lệnh.

Bây giờ cây kèo bóng đá cúp c2 là gì? Nó là một đại diện nội bộ của mộtSQLCâu lệnh trong đó đơn Các phần mà nó được xây dựng từ được lưu trữ riêng biệt. Những kèo bóng đá cúp c2 này Cây có thể được hiển thị trong nhật ký máy chủ nếu bạn đặt cấu hình tham sốDebug_print_parse, Debug_print_rewrittenhoặcDEBUG_PRINT_PLAN. Các hành động quy tắc cũng được lưu trữ Là cây kèo bóng đá cúp c2, trong danh mục hệ thốngPG_REWRITE. Chúng không được định dạng như nhật ký đầu ra, nhưng chúng chứa chính xác cùng một thông tin.

Đọc một cây kèo bóng đá cúp c2 thô đòi hỏi một số kinh nghiệm. Nhưng kể từSQLĐại diện của kèo bóng đá cúp c2 Cây đủ để hiểu hệ thống quy tắc, chương này sẽ không dạy cách đọc chúng.

Khi đọcSQLĐại diện của các cây kèo bóng đá cúp c2 trong chương này, nó là cần thiết Để có thể xác định các phần, câu lệnh được chia thành khi Đó là trong cấu trúc cây kèo bóng đá cúp c2. Các phần của cây kèo bóng đá cúp c2 là

Loại lệnh

Đây là một giá trị đơn giản cho biết lệnh nào (Chọn, Chèn, Cập nhật, Xóa) được sản xuất cây kèo bóng đá cúp c2.

Bảng phạm vi

Bảng phạm vi là danh sách các mối quan hệ được sử dụng trong kèo bóng đá cúp c2. Trong aChọnTuyên bố đây là kèo bóng đá cúp c2 mối quan hệ được đưa ra sautừkhóa từ.

Mục nhập bảng phạm vi xác định bảng hoặc chế độ xem và nói bằng cách Tên nào được gọi trong các phần khác của kèo bóng đá cúp c2. Trong kèo bóng đá cúp c2 cây, các mục bảng phạm vi được tham chiếu theo số đúng hơn hơn theo tên, vì vậy ở đây không quan trọng nếu có sự trùng lặp tên như nó sẽ xảy ra trong mộtSQLTuyên bố. Điều này có thể xảy ra sau khi kèo bóng đá cúp c2 bảng quy tắc phạm vi có được hợp nhất. kèo bóng đá cúp c2 ví dụ trong chương này sẽ không có điều này tình huống.

Mối quan hệ kết quả

Đây là một chỉ mục vào bảng phạm vi xác định quan hệ nơi kết quả của kèo bóng đá cúp c2 đi.

Chọnkèo bóng đá cúp c2 không có kết quả mối quan hệ. (Trường hợp đặc biệt củaChọn vàochủ yếu là giống hệt vớiTạo bảngtheo sauChèn ... Chọn, và không thảo luận riêng ở đây.)

choChèn, Cập nhậtXóakèo bóng đá cúp c2 lệnh, mối quan hệ kết quả là bảng (hoặc chế độ xem!) kèo bóng đá cúp c2 thay đổi sẽ có hiệu lực.

Danh sách đích

Danh sách mục tiêu là danh sách các biểu thức xác định kết quả của kèo bóng đá cúp c2. Trong trường hợp của mộtChọn,, Những biểu thức này là những biểu thức xây dựng đầu ra cuối cùng của kèo bóng đá cúp c2. Chúng tương ứng với các biểu thức giữa các từ khóaChọntừ. (*chỉ là một chữ viết tắt cho tất cả Tên cột của một mối quan hệ. Nó được mở rộng bởi trình phân tích cú pháp vào kèo bóng đá cúp c2 cột riêng lẻ, vì vậy hệ thống quy tắc không bao giờ nhìn thấy nó.)

Xóakèo bóng đá cúp c2 lệnh không cần bình thường Danh sách mục tiêu vì họ không tạo ra bất kỳ kết quả nào. Thay vào đó, Hệ thống quy tắc thêm một đặc biệtCTIDmục nhập vào danh sách mục tiêu trống, để cho phép người thực thi tìm thấy hàng sẽ bị xóa. (CTIDIS được thêm vào khi mối quan hệ kết quả là một bảng thông thường. Nếu đó là một Xem, một biến toàn bộ hàng được thêm vào thay thế, như được mô tả trongPhần 38.2.4.)

choChènkèo bóng đá cúp c2 lệnh, Danh sách đích Mô tả kèo bóng đá cúp c2 hàng mới sẽ đi vào mối quan hệ kết quả. Nó bao gồm kèo bóng đá cúp c2 biểu thức trongGiá trịmệnh đề hoặc những cái từChọnmệnh đề TRONGChèn ... Chọn. Bước đầu tiên của Quy trình viết lại thêm kèo bóng đá cúp c2 mục nhập danh sách mục tiêu cho bất kỳ cột nào không được gán cho lệnh ban đầu nhưng có mặc định. Bất kì kèo bóng đá cúp c2 cột còn lại (không có giá trị nhất định cũng như mặc định) sẽ được điền bởi người lập kế hoạch với biểu thức null không đổi.

choCập nhậtkèo bóng đá cúp c2 lệnh, Danh sách đích Mô tả kèo bóng đá cúp c2 hàng mới sẽ thay thế kèo bóng đá cúp c2 hàng cũ. Trong hệ thống quy tắc, nó chỉ chứa kèo bóng đá cúp c2 biểu thức từĐặt cột = biểu thứcMột phần của lệnh. kèo bóng đá cúp c2 Người lập kế hoạch sẽ xử lý kèo bóng đá cúp c2 cột bị thiếu bằng cách chèn kèo bóng đá cúp c2 biểu thức Sao chép kèo bóng đá cúp c2 giá trị từ hàng cũ vào mã mới. Giống như choXóa, Hệ thống quy tắc thêm ACTIDhoặc biến toàn bộ hàng rằng người thực thi có thể xác định hàng cũ sẽ được cập nhật.

Mọi mục nhập trong danh sách đích đều chứa một biểu thức có thể là một giá trị không đổi, một biến chỉ vào một cột của một trong các quan hệ trong bảng phạm vi, tham số hoặc kèo bóng đá cúp c2 biểu thức được thực hiện từ các cuộc gọi chức năng, hằng số, biến, toán tử, v.v.

Trình độ chuyên môn

Trình độ của kèo bóng đá cúp c2 là một biểu thức giống như một trong những Những người chứa trong các mục nhập danh sách mục tiêu. Giá trị kết quả của Biểu thức này là một boolean cho biết liệu hoạt động có (Chèn, Cập nhật, XóahoặcChọn) cho hàng kết quả cuối cùng sẽ được thực thi hoặc không. Nó tương ứng vớiWHEREmệnh đề của mộtSQLcâu lệnh.

kèo bóng đá cúp c2 tham gia

Cây tham gia của kèo bóng đá cúp c2 hiển thị cấu trúc củatừmệnh đề. Đối với một kèo bóng đá cúp c2 đơn giản nhưChọn ... từ a, b, c, kèo bóng đá cúp c2 tham gia chỉ là một Danh sáchtừkèo bóng đá cúp c2 mục, vì chúng ta là được phép tham gia cùng họ theo bất kỳ thứ tự. Nhưng khitham giaBiểu thức, đặc biệt là các kết nối bên ngoài, là Được sử dụng, chúng ta phải tham gia vào thứ tự được hiển thị bởi các lần tham gia. Trong đó trường hợp, kèo bóng đá cúp c2 tham gia hiển thị cấu trúc củatham giaBiểu thức. kèo bóng đá cúp c2 hạn chế liên quan đến cụ thểtham giamệnh đề (từtrênhoặcsử dụngBiểu thức) được lưu trữ dưới dạng các biểu thức đủ điều kiện được gắn vào những kèo bóng đá cúp c2 tham gia nút. Hóa ra là thuận tiện để lưu trữ cấp cao nhấtWHEREBiểu thức như một trình độ chuyên môn Được gắn vào vật phẩm tham gia cấp cao nhất, quá. Vì vậy, thực sự là tham gia kèo bóng đá cúp c2 đại diện cho cảtừWHEREmệnh đề của AChọn.

Những người khác

Các phần khác của cây kèo bóng đá cúp c2 nhưĐặt hàng bởiĐiều khoản không được quan tâm ở đây. Quy tắc hệ thống thay thế một số mục ở đó trong khi áp dụng kèo bóng đá cúp c2 quy tắc, nhưng điều đó không liên quan nhiều đến kèo bóng đá cúp c2 nguyên tắc cơ bản của quy tắc hệ thống.