PostgreSQL: kèo chấp bóng đá hôm nay liệu: 9.4: PostgreSQL | |||
---|---|---|---|
prev | UP | Chương 35. Mở rộngSQL | Tiếp theo |
PostgreSQLCác kèo bóng đá hôm nay và ngày mai dữ liệu được chia thành các kèo bóng đá hôm nay và ngày mai cơ sở, kèo bóng đá hôm nay và ngày mai tổng hợp, miền và kèo bóng đá hôm nay và ngày mai giả.
Các kèo bóng đá hôm nay và ngày mai cơ sở là những kèo bóng đá hôm nay và ngày mai, nhưINT4, được thực hiện dưới mức củaSQLNgôn ngữ (thường bằng ngôn ngữ cấp thấp như C). Chúng thường tương ứng với những gì thường được gọi là các kèo bóng đá hôm nay và ngày mai dữ liệu trừu tượng.PostgreSQLChỉ có thể hoạt động trên các kèo bóng đá hôm nay và ngày mai đó thông qua các chức năng do người dùng cung cấp và chỉ hiểu hành vi của các kèo bóng đá hôm nay và ngày mai đó trong phạm vi mà người dùng mô tả chúng. Các kèo bóng đá hôm nay và ngày mai cơ sở được chia nhỏ thành các kèo bóng đá hôm nay và ngày mai vô hướng và mảng.
Các kèo bóng đá hôm nay và ngày mai tổng hợp hoặc kèo bóng đá hôm nay và ngày mai hàng, được tạo bất cứ khi nào người dùng tạo bảng. Nó cũng có thể sử dụngPostgreSQL: Tài liệu: 9.4: Tạo kèo bóng đá hôm nay và ngày mai chấpĐể xác định A"độc lập"kèo bóng đá hôm nay và ngày mai tổng hợp không có bảng liên kết. Một kèo bóng đá hôm nay và ngày mai tổng hợp chỉ đơn giản là một danh sách các kèo bóng đá hôm nay và ngày mai có tên trường liên quan.SQLTruy vấn. Tham khảoPhần 8.16Để biết thêm thông tin về các kèo bóng đá hôm nay và ngày mai tổng hợp.
Một miền dựa trên một kèo bóng đá hôm nay và ngày mai cơ sở cụ thể và cho nhiều mục đích có thể thay thế với kèo bóng đá hôm nay và ngày mai cơ sở của nó. Tuy nhiên, một miền có thể có các ràng buộc hạn chế các giá trị hợp lệ của nó đối với một tập hợp con của kèo bóng đá hôm nay và ngày mai cơ sở cơ bản sẽ cho phép.
miền có thể được tạo bằng cách sử dụngSQLlệnhTạo tên miền. Sáng tạo và sử dụng của họ không được thảo luận trong chương này.
Có một vài"Pseudo-Types"cho mục đích đặc biệt. Các kèo bóng đá hôm nay và ngày mai giả không thể xuất hiện dưới dạng các cột của các bảng hoặc thuộc tính của các kèo bóng đá hôm nay và ngày mai tổng hợp, nhưng chúng có thể được sử dụng để khai báo các kèo bóng đá hôm nay và ngày mai đối số và kết quả của các hàm.Bảng 8-25Liệt kê các kèo bóng đá hôm nay và ngày mai giả hiện có.
Năm kèo bóng đá hôm nay và ngày mai giả quan tâm đặc biệt làAnyEuity, AnyArray, Anynonarray, AnyenumvàAnyrange, được gọi chung làCác kèo bóng đá hôm nay và ngày mai đa hình. Bất kỳ chức năng nào được tuyên bố bằng cách sử dụng các kèo bóng đá hôm nay và ngày mai này được cho làHàm đa hình. Hàm đa hình có thể hoạt động trên nhiều kèo bóng đá hôm nay và ngày mai dữ liệu khác nhau, với (các) kèo bóng đá hôm nay và ngày mai dữ liệu cụ thể được xác định bởi các kèo bóng đá hôm nay và ngày mai dữ liệu thực sự được truyền cho nó trong một cuộc gọi cụ thể.
Các đối số và kết quả đa hình được gắn với nhau và được giải quyết thành một kèo bóng đá hôm nay và ngày mai dữ liệu cụ thể khi một truy vấn gọi hàm đa hình được phân tích cú pháp. Mỗi vị trí (đối số hoặc giá trị trả về) được khai báo làAnyEuityđược phép có bất kỳ kèo bóng đá hôm nay và ngày mai dữ liệu thực tế cụ thể nào, nhưng trong bất kỳ cuộc gọi nào, tất cả đều phải làcùngkèo bóng đá hôm nay và ngày mai thực tế. Mỗi vị trí được khai báo làAnyArrayCó thể có bất kỳ kèo bóng đá hôm nay và ngày mai dữ liệu mảng nào, nhưng tương tự tất cả chúng phải là cùng một kèo bóng đá hôm nay và ngày mai. Và tương tự, các vị trí được khai báo làAnyrangeTất cả phải là cùng một kèo bóng đá hôm nay và ngày mai phạm vi. Hơn nữa, nếu có các vị trí được tuyên bốAnyArrayvà những người khác được tuyên bốAnyEuity, kèo bóng đá hôm nay và ngày mai mảng thực tế trongAnyArrayVị trí phải là một mảng có các phần tử là cùng kèo bóng đá hôm nay và ngày mai xuất hiện trongAnyEuityVị trí. Tương tự, nếu có các vị trí được khai báoAnyrangevà những người khác được tuyên bốAnyEuity, kèo bóng đá hôm nay và ngày mai phạm vi thực tế trongAnyrangeVị trí phải là một phạm vi có phân nhóm là cùng kèo bóng đá hôm nay và ngày mai xuất hiện trongAnyEuityVị trí.Anynonarrayđược đối xử giống hệt nhưAnyEuity, nhưng thêm ràng buộc bổ sung rằng kèo bóng đá hôm nay và ngày mai thực tế không phải là kèo bóng đá hôm nay và ngày mai mảng.Anyenumđược đối xử giống hệt nhưAnyEuity, nhưng thêm ràng buộc bổ sung rằng kèo bóng đá hôm nay và ngày mai thực tế phải là kèo bóng đá hôm nay và ngày mai enum.
Do đó, khi có nhiều hơn một vị trí đối số được khai báo với kèo bóng đá hôm nay và ngày mai đa hình, hiệu ứng ròng là chỉ được phép kết hợp một số kèo bóng đá hôm nay và ngày mai đối số thực tế. Ví dụ: một hàm được khai báo làbằng (AnyEuity, AnyEuity)Sẽ lấy bất kỳ hai giá trị đầu vào nào, miễn là chúng thuộc cùng một kèo bóng đá hôm nay và ngày mai dữ liệu.
Khi giá trị trả về của hàm được khai báo là kèo bóng đá hôm nay và ngày mai đa hình, phải có ít nhất một vị trí đối số cũng đa hình và kèo bóng đá hôm nay và ngày mai dữ liệu thực tế được cung cấp là đối số xác định kèo bóng đá hôm nay và ngày mai kết quả thực tế cho cuộc gọi đó. Ví dụ: nếu chưa có cơ chế đăng ký mảng, người ta có thể xác định một hàm thực hiện đăng ký làĐăng ký (AnyArray, Integer) trả về AnyEuity. Tuyên bố này hạn chế đối số đầu tiên thực tế là một kèo bóng đá hôm nay và ngày mai mảng và cho phép trình phân tích cú pháp suy ra kèo bóng đá hôm nay và ngày mai kết quả chính xác từ kèo bóng đá hôm nay và ngày mai đối số đầu tiên thực tế.f (AnyArray) trả về AnyenumSẽ chỉ chấp nhận các mảng của các kèo bóng đá hôm nay và ngày mai enum.
Lưu ý rằngAnynonarrayvàAnyenumKhông đại diện cho các biến kèo bóng đá hôm nay và ngày mai riêng biệt; chúng giống nhưAnyEuity, chỉ với một ràng buộc bổ sung. Ví dụ: khai báo một hàm làf (AnyEuity, Anyenum)tương đương với việc khai báo nó làf (Anyenum, Anyenum): Cả hai đối số thực tế phải là cùng kèo bóng đá hôm nay và ngày mai enum.
17117_17189Phần 35.4.5) Có thể đa hình: Điều này được thực hiện bằng cách khai báo tham số cuối cùng của nó làVariadic AnyArray. Đối với các mục đích của đối số khớp và xác định kèo bóng đá hôm nay và ngày mai kết quả thực tế, một hàm như vậy hoạt động giống như khi bạn đã viết số lượng thích hợp củaAnynonarraytham số.