Phiên bản được hỗ trợ:hiện tại(17)16/15/14/13
Phiên bản phát triển: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 soi kèo bóng đá truoctran trang chohiện tạiPhiên bản hoặc một trong soi kèo bóng đá truoctran phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

39.1. Cây soi kèo bóng đá truoctran

Để hiểu hệ thống quy tắc hoạt động như thế nào, cần phải biết khi nào 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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran với một số thông tin bổ sung và kết quả là không tạo ra hoặc nhiều cây soi kèo bóng đá truoctran.SQLcâu lệnh.

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

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

Khi đọcSQLCác biểu diễn của các cây soi kèo bóng đá truoctran trong chương này, cần phải xác định các phần mà câu lệnh được chia thành khi nó nằm trong cấu trúc cây soi kèo bóng đá truoctran. Các phần của cây soi kèo bóng đá truoctran là

Loại lệnh

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

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 soi kèo bóng đá truoctran. Trong aChọnTuyên bố Đây là những mối quan hệ được đưa ra sautừTừ khóa.

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

mối quan hệ kết quả

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

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

choChèn,Cập nhậtXóasoi kèo bóng đá truoctran lệnh, mối quan hệ kết quả là bảng (hoặc chế độ xem!) Trong đó soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran. 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 soi kèo bóng đá truoctran. 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ả soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran cột riêng lẻ, vì vậy hệ thống quy tắc không bao giờ nhìn thấy nó.)

Xóasoi kèo bóng đá truoctran lệnh không cần một danh sách mục tiêu bình thường vì chúng không tạo ra bất kỳ kết quả nào. Thay vào đó, người lập kế hoạch thêm một đặc biệtCTIDNhậ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 bị xóa. (CTIDđược thêm vào khi quan hệ kết quả là soi kèo bóng đá truoctran bảng thông thường. Nếu đó là soi kèo bóng đá truoctran chế độ xem, soi kèo bóng đá truoctran biến toàn bộ hàng được thêm vào thay thế, bởi hệ thống quy tắc, như được mô tả trongPhần 39.2.4.)

choChènsoi kèo bóng đá truoctran lệnh, Danh sách mục tiêu mô tả soi kèo bóng đá truoctran hàng mới sẽ đi vào mối quan hệ kết quả. Nó bao gồm soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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.

choCập nhậtsoi kèo bóng đá truoctran lệnh, danh sách mục tiêu mô tả soi kèo bóng đá truoctran hàng mới sẽ thay thế soi kèo bóng đá truoctran hàng cũ. Trong hệ thống quy tắc, nó chỉ chứa soi kèo bóng đá truoctran biểu thức từĐặt cột = biểu thứcMột phần của lệnh. Người lập kế hoạch sẽ xử lý soi kèo bóng đá truoctran cột bị thiếu bằng cách chèn soi kèo bóng đá truoctran biểu thức sao chép soi kèo bóng đá truoctran giá trị từ hàng cũ vào hàng mới.Xóa, ACTIDhoặc biến toàn bộ hàng được thêm vào để 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 soi kèo bóng đá truoctran biểu thức được tạo từ các lệnh gọi hàm, hằng số, biến, toán tử, v.v.

Trình độ chuyên môn

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

soi kèo bóng đá truoctran tham gia

Cây tham gia của soi kèo bóng đá truoctran hiển thị cấu trúc củatừmệnh đề. Đối với một soi kèo bóng đá truoctran đơn giản nhưChọn ... từ a, b, c, soi kèo bóng đá truoctran tham gia chỉ là một danh sách củatừsoi kèo bóng đá truoctran mục, vì chúng tôi được phép tham gia chúng theo bất kỳ thứ tự nào. Nhưng khiTham giaBiểu thức, đặc biệt là các kết nối bên ngoài, được sử dụng, chúng ta phải tham gia theo thứ tự được hiển thị bởi các lần tham gia. Trong trường hợp đó, soi kèo bóng đá truoctran tham gia hiển thị cấu trúc củatham giaBiểu thức. soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran biểu thức đủ điều kiện được gắn vào soi kèo bóng đá truoctran nút chân nối đó. Hóa ra là thuận tiện để lưu trữ cấp cao nhấtWHEREBiểu thức như là một trình độ được gắn vào vật phẩm tham gia cấp cao nhất, quá. Vì vậy, thực sự là soi kèo bóng đá truoctran tham gia đạ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 soi kèo bóng đá truoctran nhưĐặt hàng bởiĐiều khoản không được quan tâm ở đây. Hệ thống quy tắc thay thế một số mục ở đó trong khi áp dụng soi kèo bóng đá truoctran quy tắc, nhưng điều đó không liên quan nhiều đến soi kèo bóng đá truoctran nguyên tắc cơ bản của hệ thống quy tắc.