PostgreSQL: soi kèo bóng đá truoctran liệu: | |||
---|---|---|---|
prev | UP | Chương 35. Mở rộngSQL | Tiếp theo |
PostgreSQLCác kèo bóng đá việt nam dữ liệu được chia thành các kèo bóng đá việt nam cơ sở, kèo bóng đá việt nam tổng hợp, miền và kèo bóng đá việt nam giả.
Các kèo bóng đá việt nam cơ sở là những kèo bóng đá việt nam, 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 đá việt nam dữ liệu trừu tượng.PostgreSQLChỉ có thể hoạt động trên các kèo bóng đá việt nam đó 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 đá việt nam đó trong phạm vi mà người dùng mô tả chúng. Các kèo bóng đá việt nam cơ sở được chia nhỏ thành các kèo bóng đá việt nam vô hướng và mảng. Đối với mỗi kèo bóng đá việt nam vô hướng, một kèo bóng đá việt nam mảng tương ứng được tạo tự động có thể giữ các mảng kích thước biến của kèo bóng đá việt nam vô hướng đó.
Các kèo bóng đá việt nam tổng hợp hoặc kèo bóng đá việt nam 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.5:Để xác định A"độc lập"kèo bóng đá việt nam tổng hợp không có bảng liên kết. Một kèo bóng đá việt nam tổng hợp chỉ đơn giản là một danh sách các kèo bóng đá việt nam có tên trường liên quan. Giá trị của kèo bóng đá việt nam tổng hợp là một hàng hoặc bản ghi của các giá trị trường. Người dùng có thể truy cập các trường thành phần từSQLTruy vấn. Tham khảoPhần 8.16Để biết thêm thông tin về các kèo bóng đá việt nam tổng hợp.
12264_12498
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 đá việt nam 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 đá việt nam tổng hợp, nhưng chúng có thể được sử dụng để khai báo các kèo bóng đá việt nam đối số và kết quả của các hàm. Điều này cung cấp một cơ chế trong hệ thống kèo bóng đá việt nam để xác định các lớp chức năng đặc biệt.Bảng 8-25Liệt kê các kèo bóng đá việt nam giả hiện có.
Năm kèo bóng đá việt nam giả quan tâm đặc biệt làAnyEuity, AnyArray, Anynonarray, AnyenumvàAnyrange, được gọi chung làCác kèo bóng đá việt nam đ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 đá việt nam này được cho làHàm đa hình13779_13957
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 đá việt nam 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 đá việt nam 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 đá việt nam thực tế. Mỗi vị trí được khai báo làAnyArrayCó thể có bất kỳ kèo bóng đá việt nam 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 đá việt nam. 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 đá việt nam 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 đá việt nam 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 đá việt nam 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ốAnyEuityhoặcAnyArray, kèo bóng đá việt nam 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 đá việt nam xuất hiện trongAnyEuityVị trí và giống như kèo bóng đá việt nam phần tử củaAnyArrayVị 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 đá việt nam thực tế không phải là kèo bóng đá việt nam mảng.15527_15536đượ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 đá việt nam thực tế phải là kèo bóng đá việt nam enum.
15690_15895bằ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 đá việt nam dữ liệu.
Khi giá trị trả về của hàm được khai báo là kèo bóng đá việt nam đ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 đá việt nam dữ liệu thực tế được cung cấp là đối số xác định kèo bóng đá việt nam 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 đá việt nam mảng và cho phép trình phân tích cú pháp suy ra kèo bóng đá việt nam kết quả chính xác từ kèo bóng đá việt nam đối số đầu tiên thực tế. Một ví dụ khác là một hàm được khai báo làf (AnyArray) trả về Anyenum16745_16786
Trong hầu hết các trường hợp, trình phân tích cú pháp có thể suy ra kèo bóng đá việt nam dữ liệu thực tế cho kèo bóng đá việt nam kết quả đa hình từ các đối số thuộc kèo bóng đá việt nam đa hình khác nhau; Ví dụAnyArraycó thể được suy luận từAnyEuityhoặc ngược lại. Ngoại lệ là kết quả đa hình của kèo bóng đá việt namAnyrangeYêu cầu đối số kèo bóng đá việt namAnyrange; nó không thể được suy luận từAnyArrayhoặcAnyEuityĐối số. Điều này là do có thể có nhiều kèo bóng đá việt nam phạm vi với cùng một kèo bóng đá việt nam phụ.
Lưu ý rằngAnynonarrayvàAnyenumKhông đại diện cho các biến kèo bóng đá việt nam 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)17754_17810
17816_17888Phầ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 đá việt nam 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ố.