PostgreSQLCác kèo bóng đá cúp c2 dữ liệu có thể được chia thành các kèo bóng đá cúp c2 cơ sở, kèo bóng đá cúp c2 container, miền và kèo bóng đá cúp c2 giả.
Các kèo bóng đá cúp c2 cơ sở là những kèo bóng đá cúp c2, nhưSố nguyên
, đượ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 đá cúp c2 dữ liệu trừu tượng.PostgreSQL12708_12914Chương 8.
Các kèo bóng đá cúp c2 được liệt kê (enum) có thể được coi là một tiểu thể kèo bóng đá cúp c2 của các kèo bóng đá cúp c2 cơ sở. Sự khác biệt chính là chúng có thể được tạo bằng cách sử dụngSQLCác lệnh, không có bất kỳ chương trình cấp thấp nào. Tham khảoPhần 8.7Để biết thêm thông tin.
PostgreSQLCó ba kèo bóng đá cúp c2VangcontainerHồiCác kèo bóng đá cúp c2, là các kèo bóng đá cúp c2 chứa nhiều giá trị của các kèo bóng đá cúp c2 khác. Đây là các mảng, vật liệu tổng hợp và phạm vi.
13832_14150Phần 8.15Để biết thêm thông tin.
Các kèo bóng đá cúp c2 tổng hợp hoặc kèo bóng đá cúp c2 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Để xác định Ađộc lậpkèo bóng đá cúp c2 tổng hợp không có bảng liên kết. Một kèo bóng đá cúp c2 tổng hợp chỉ đơn giản là một danh sách các kèo bóng đá cúp c2 có tên trường liên quan. Giá trị của kèo bóng đá cúp c2 tổng hợp là một hàng hoặc bản ghi của các giá trị trường. Tham khảoPhần 8.16Để biết thêm thông tin.
Một kèo bóng đá cúp c2 phạm vi có thể chứa hai giá trị cùng kèo bóng đá cúp c2, là giới hạn dưới và trên của phạm vi. Các kèo bóng đá cúp c2 phạm vi được tạo ra, mặc dù một vài kèo bóng đá cúp c2 tích hợp tồn tại. Tham khảoPhần 8.17Để biết thêm thông tin.
Một miền dựa trên một kèo bóng đá cúp c2 cơ bản cụ thể và cho nhiều mục đích có thể hoán đổi với kèo bóng đá cúp c2 cơ bả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 đá cúp c2 cơ bản sẽ cho phép. Miền được tạo bằng cách sử dụngSQLlệnhTạo tên miền. Tham khảoPhần 8.18Để biết thêm thông tin.
Có một vàiPseudo-TypesHồicho các mục đích đặc biệt. Các kèo bóng đá cúp c2 giả không thể xuất hiện dưới dạng các cột của các bảng hoặc các thành phần của các kèo bóng đá cúp c2 container, nhưng chúng có thể được sử dụng để khai báo các kèo bóng đá cúp c2 đố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 đá cúp c2 để xác định các lớp chức năng đặc biệt.Bảng 8.2516649_16684
Năm kèo bóng đá cúp c2 giả quan tâm đặc biệt làAnyEuity
, AnyArray
, Anynonarray
, Anyenum
vàAnyrange
, được gọi chung làCác kèo bóng đá cúp c2 đ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 đá cúp c2 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 đá cúp c2 dữ liệu khác nhau, với (các) kèo bóng đá cúp c2 dữ liệu cụ thể được xác định bởi các kèo bóng đá cúp c2 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 đá cúp c2 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 đá cúp c2 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 đá cúp c2 thực tế. Mỗi vị trí được khai báo làAnyArray
Có thể có bất kỳ kèo bóng đá cúp c2 dữ liệu mảng nào, nhưng tương tự tất cả chúng phải cùng kèo bóng đá cúp c2. Và tương tự, các vị trí được khai báo làAnyrange
Tất cả phải là cùng một kèo bóng đá cúp c2 phạm vi. Hơn nữa, nếu có các vị trí được tuyên bốAnyArray
và những người khác được tuyên bố18546_18558
, kèo bóng đá cúp c2 mảng thực tế trongAnyArray
Vị trí phải là một mảng có các phần tử là cùng kèo bóng đá cúp c2 xuất hiện trongAnyEuity
Vị trí. Tương tự, nếu có các vị trí được khai báoAnyrange
và những người khác được tuyên bốAnyEuity
hoặcAnyArray
, kèo bóng đá cúp c2 phạm vi thực tế trongAnyrange
Vị trí phải là một phạm vi có phân nhóm là cùng kèo bóng đá cúp c2 xuất hiện trongAnyEuity
Vị trí và giống như kèo bóng đá cúp c2 phần tử củaAnyArray
Vị 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 đá cúp c2 thực tế không phải là kèo bóng đá cúp c2 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 đá cúp c2 thực tế phải là kèo bóng đá cúp c2 enum.
Do đó, khi có nhiều hơn một vị trí đối số được khai báo với kèo bóng đá cúp c2 đa hình, hiệu ứng ròng là chỉ được phép kết hợp một số kèo bóng đá cúp c2 đố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 đá cúp c2 dữ liệu.
19929_20304Đă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 đá cúp c2 mảng và cho phép trình phân tích cú pháp suy ra kèo bóng đá cúp c2 kết quả chính xác từ kèo bóng đá cúp c2 đố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ề Anyenum
Sẽ chỉ chấp nhận các mảng của các kèo bóng đá cúp c2 enum.
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 đá cúp c2 dữ liệu thực tế cho kèo bóng đá cúp c2 kết quả đa hình từ các đối số thuộc kèo bóng đá cúp c2 đa hình khác nhau; Ví dụAnyArray
có thể được suy luận từAnyEuity
20950_21019Anyrange
Yêu cầu đối số kèo bóng đá cúp c2Anyrange
; nó không thể được suy luận từAnyArray
hoặcAnyEuity
Đối số. Điều này là do có thể có nhiều kèo bóng đá cúp c2 phạm vi với cùng một kèo bóng đá cúp c2 phụ.
Lưu ý rằngAnynonarray
vàAnyenum
Không đại diện cho các biến kèo bóng đá cúp c2 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 một kèo bóng đá cúp c2 enum.
21779_21851Phần 38.5.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 đá cúp c2 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ủaAnynonarray
tham số.