Postgresql 9.2.24 Tài liệu | ||||
---|---|---|---|---|
prev | UP | Chương 35. Mở rộngSQL | Tiếp theo |
PostgreSQLKiểu dữ liệu là 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, Đó là được thực hiện dưới mức củaSQLNgôn ngữ (thường ở mức độ thấp Ngôn ngữ như C). Chúng thường tương ứng với những gì là 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 đó đến mức mà người dùng mô tả họ. Các kèo bóng đá việt nam cơ sở được chia nhỏ thành vô hướng và mảng kèo bóng đá việt nam. Đố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 là tự động tạo 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 một bảng. Nó cũng có thể sử dụngTạo kèo bóng đá việt namĐể xác định A"độc lập"kèo bóng đá việt nam tổng hợp không có liên quan bàn. 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 với Tên trường liên kết. Giá trị của kèo bóng đá việt nam tổng hợp là một hàng hoặc Ghi lại các giá trị trường. Người dùng có thể truy cập thành phần Các trường 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.
Một miền dựa trên một kèo bóng đá việt nam cơ sở cụ thể và cho nhiều kèo bóng đá việt nam Mục đích là có thể hoán đổi với kèo bóng đá việt nam cơ sở của nó. Tuy nhiên, a 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 đá việt nam 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 của họ và Sử dụng không được thảo luận trong chương này.
Có một vài"Pseudo-Types"13173_13467Bảng 8-24Liệ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, mà được gọi chungđa hình kèo bóng đá việt nam. 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 đều được cho là là AHàm đa hình. MỘT Chức năng đa hình có thể hoạt động trên nhiều kèo bóng đá việt nam dữ liệu khác nhau, với (các) kèo bóng đá việt nam dữ liệu cụ thể được xác định bởi dữ liệu Các kèo bóng đá việt nam 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 đá việt nam dữ liệu cụ thể khi một truy vấn gọi Chức năng đa hình được phân tích cú pháp. Mỗi vị trí (một trong hai đố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ỳ kèo bóng đá việt nam dữ liệu thực tế cụ thể nào cho cuộc gọi cho tất cả họ phải làcùngkèo bóng đá việt nam thực tế. Mỗi vị trí được tuyên bố làAnyArraycó thể có bất kỳ mảng nào Kiểu dữ liệu, 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 kèo bóng đá việt nam phạm vi. Hơn nữa, nếu có Vị trí được khai báoAnyArrayvà những người khác Tuyên bốAnyEuity, mảng thực tế Nhập vàoAnyArrayvị 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ó là các vị trí được khai báoAnyrangevà Những người khác được tuyên bốAnyEuity, Thực tế kèo bóng đá việt nam phạm vi trongAnyrangeVị trí phải là một phạm vi có phân nhóm là cùng một kèo bóng đá việt nam xuất hiện trong15667_15679Vị trí.Anynonarrayđược đối xử giống hệt nhưAnyEuity, nhưng thêm vào ràng buộc 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.Anyenumđược đối xử giống hệt nhưAnyEuity, nhưng thêm vào ràng buộc rằng kèo bóng đá việt nam thực tế phải là một kèo bóng đá việt nam enum.
16086_16303bằng nhau (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à một kèo bóng đá việt nam đa hình, phải có ít nhất một vị trí đối số đó cũng là đ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ó đăng ký mảng cơ chế, người ta có thể xác định một chức năng thực hiện Đăng ký làSCORSTION (AnyArray, số nguyên) trả về anyelement. 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ừ thực tế đầu tiên kèo bóng đá việt nam đối số. Một ví dụ khác là một hàm được khai báo làf (AnyArray) trả về AnyenumSẽ chỉ Chấp nhận các mảng của các kèo bóng đá việt nam enum.
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ụ, tuyên bố một chức năng nhưf (AnyEuity, Anyenum)IS 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 một enum kiểu.
một hàm variadic (một người dùng một số biến Đối số, như trongPhần 35.4.5) có thể là đa hình: Điều này được thực hiện bởi khai báo tham số cuối cùng của nó làVariadic AnyArray. Vì mục đích phù hợp đối số và xác định kết quả thực tế kèo bóng đá việt nam, 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ố.