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 đá hom nay phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

37.1. Các kèo bóng đá hom nay cây

Để hiểu cách thức hoạt động của hệ thống quy tắc biết khi nào nó được gọi và kết quả 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 đá hom nay 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 đá hom nay với một số Thông tin bổ sung và tạo ra các cây kèo bóng đá hom nay bằng không hoặc nhiều kết quả. Vì vậy, đầu vào và đầu ra của nó luôn là những thứ mà trình phân tích cú pháp Bản thân nó có thể đã được sản xuất và do đó, bất cứ điều gì nó thấy là về cơ bản có thể thể hiện như mộtSQLcâu lệnh.

Bây giờ cây kèo bóng đá hom nay 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. Những cái này kèo bóng đá hom nay câ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ữ Là cây kèo bóng đá hom nay, 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 đá hom nay thô đòi hỏi một số kinh nghiệm. Nhưng kể từSQLĐại diện của kèo bóng đá hom nay 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 đá hom nay trong chương này cần thiết để có thể xác định các phần mà tuyên bố là đột nhập khi nó nằm trong cấu trúc cây kèo bóng đá hom nay. Các phần của một cây kèo bóng đá hom nay 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) đã sản xuất cây kèo bóng đá hom nay.

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 đá hom nay. Trong aChọnCâu lệnh Đây là những mối quan hệ được đưa ra sautừTừ khóa.

mỗi mục nhập bảng phạm vi xác định bảng hoặc chế độ xem và kể bằng tên nào nó được gọi trong các phần khác của kèo bóng đá hom nay. Trong cây kèo bóng đá hom nay, các mục bảng phạm vi là được tham chiếu theo số chứ không phải theo tên, vì vậy ở đây nó không quan trọng nếu có tên trùng lặp như nó sẽ MỘTSQLTuyên bố. Cái này có thể xảy ra sau khi kèo bóng đá hom nay bảng quy tắc phạm vi đã được hợp nhất vào. kèo bóng đá hom nay 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 mối quan hệ nơi kết quả của kèo bóng đá hom nay đi.

Chọnkèo bóng đá hom nay không có kết quả 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 sau làChèn ... Chọn, và không thảo luận riêng ở đây.)

choChèn, Cập nhậtXóakèo bóng đá hom nay lệnh, mối quan hệ kết quả là bảng (hoặc chế độ xem!) kèo bóng đá hom nay 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 đá hom nay. 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 này Xây dựng đầu ra cuối cùng của kèo bóng đá hom nay. Chúng tương ứng với 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 đá hom nay 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 đá hom nay lệnh không cần Danh sách mục tiêu bình thường 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 bị xóa. (CTIDđượ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 cái nhìn, một Biến toàn bộ được thêm vào thay thế, như được mô tả trongPhần 37.2.4.)

choChènkèo bóng đá hom nay lệnh, mục tiêu Danh sách mô tả kèo bóng đá hom nay hàng mới sẽ đi vào kết quả mối quan hệ. Nó bao gồm kèo bóng đá hom nay 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 Viết lại quá trình thêm kèo bóng đá hom nay 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ỳ cột còn lại (không có giá trị nhất định cũng không phải là mặc định) sẽ được điền bởi người lập kế hoạch với một Biểu thức null không đổi.

choCập nhậtkèo bóng đá hom nay lệnh, mục tiêu Danh sách mô tả kèo bóng đá hom nay hàng mới sẽ thay thế cái cũ những người. Trong hệ thống quy tắc, nó chỉ chứa kèo bóng đá hom nay 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ý mất tích kèo bóng đá hom nay cột bằng cách chèn kèo bóng đá hom nay biểu thức sao chép kèo bóng đá hom nay giá trị từ Hàng cũ vào hàng mới. Giống như choXóa, Hệ thống quy tắc thêm ACTIDhoặc toàn bộ hàng biến để người thực thi có thể xác định hàng cũ để đượ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 cột của một trong các mối quan hệ trong bảng phạm vi, một tham số hoặc kèo bóng đá hom nay biểu thức được tạo 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 đá hom nay là một biểu thức giống như một trong số đó có trong các mục nhập danh sách mục tiêu. Kết quả giá trị của biểu thức này là một 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 nên được thực thi hay không. Nó tương ứng vớiWHEREmệnh đề của mộtSQLcâu lệnh.

kèo bóng đá hom nay tham gia

Cây tham gia của kèo bóng đá hom nay hiển thị cấu trúc củatừmệnh đề. Đối với một kèo bóng đá hom nay đơn giản giốngChọn ... từ a, b, c, The kèo bóng đá hom nay tham gia chỉ là một danh sách củatừkèo bóng đá hom nay mục, vì chúng tôi được phép tham gia 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, được sử dụng, chúng ta phải Tham gia vào thứ tự được hiển thị bởi các tham gia. Trong trường hợp đó, kèo bóng đá hom nay tham gia hiển thị cấu trúc củatham giaBiểu thức. Những hạn chế được liên kết với cụ thểTham giamệnh đề (từtrênhoặcSử dụngbiểu thức) được lưu trữ dưới dạng Biểu thức đủ điều kiện gắn liền với những kèo bóng đá hom nay tham gia nút. Hóa ra là thuận tiện để lưu trữ cấp cao nhấtWHEREBiểu thức như a Trình độ chuyên môn gắn liền với vật phẩm tham gia cấp cao nhất, cũng vậy. Vì vậy, thực sự là kèo bóng đá hom nay 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 kèo bóng đá hom nay nhưĐặt hàng bởiĐiều khoản không được quan tâm ở đây. kèo bóng đá hom nay Hệ thống quy tắc thay thế một số mục ở đó trong khi áp dụng kèo bóng đá hom nay quy tắc, nhưng điều đó không liên quan nhiều đến Nguyên tắc cơ bản của hệ thống quy tắc.