PostgreSQLCác kèo chấp bóng đá hôm nay dữ liệu có thể được chia thành các kèo chấp bóng đá hôm nay cơ sở, kèo chấp bóng đá hôm nay container, miền và kèo chấp bóng đá hôm nay giả.
12019_12048Số 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 chấp bóng đá hôm nay dữ liệu trừu tượng.PostgreSQLChỉ có thể hoạt động trên các kèo chấp bóng đá hôm nay đó 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 chấp bóng đá hôm nay đó trong phạm vi mà người dùng mô tả chúng. Các kèo chấp bóng đá hôm nay cơ sở tích hợp được mô tả trongChương 8.
Các kèo chấp bóng đá hôm nay được liệt kê (enum) có thể được coi là một tiểu thể kèo chấp bóng đá hôm nay của các kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm naycontainerHồiCác kèo chấp bóng đá hôm nay, là các kèo chấp bóng đá hôm nay chứa nhiều giá trị của các kèo chấp bóng đá hôm nay khác. Đây là các mảng, vật liệu tổng hợp và phạm vi.
Mảng có thể chứa nhiều giá trị cùng kèo chấp bóng đá hôm nay. Một kèo chấp bóng đá hôm nay mảng được tự động tạo cho từng kèo chấp bóng đá hôm nay cơ sở, kèo chấp bóng đá hôm nay tổng hợp, kèo chấp bóng đá hôm nay phạm vi và kèo chấp bóng đá hôm nay miền. Nhưng không có mảng mảng. Cho đến nay, hệ thống kèo chấp bóng đá hôm nay có liên quan, các mảng đa chiều giống như các mảng một chiều. Tham khảoPhần 8.15Để biết thêm thông tin.
Các kèo chấp bóng đá hôm nay tổng hợp hoặc kèo chấp bóng đá hôm nay 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ụngTạo kèo chấp bóng đá hôm nayđể xác định Ađộc lậpHồikèo chấp bóng đá hôm nay tổng hợp không có bảng liên kết. Một kèo chấp bóng đá hôm nay tổng hợp chỉ đơn giản là một danh sách các kèo chấp bóng đá hôm nay có tên trường liên quan. Giá trị của kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay phạm vi có thể chứa hai giá trị cùng kèo chấp bóng đá hôm nay, là giới hạn dưới và trên của phạm vi. Các kèo chấp bóng đá hôm nay phạm vi được tạo ra, mặc dù một vài kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay cơ bản cụ thể và cho nhiều mục đích có thể thay thế với kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay cơ bản sẽ cho phép. Miền được tạo bằng cách sử dụngSQLlệnh15429_15444. Tham khảoPhần 8.18Để biết thêm thông tin.
Có một vàiHồiPseudo-TypesHồicho các mục đích đặc biệt. Các kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay container, nhưng chúng có thể được sử dụng để khai báo các kèo chấp bóng đá hôm nay đố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 chấp bóng đá hôm nay để xác định các lớp chức năng đặc biệt.Bảng 8.27Liệt kê các kèo chấp bóng đá hôm nay giả hiện có.
Một số kèo chấp bóng đá hôm nay giả quan tâm đặc biệt làCác kèo chấp bóng đá hôm nay đa hình16907_16937Hàm đa hình. Tính năng mạnh mẽ này cho phép một định nghĩa hàm duy nhất hoạt động trên nhiều kèo chấp bóng đá hôm nay dữ liệu khác nhau, với (các) kèo chấp bóng đá hôm nay dữ liệu cụ thể được xác định bởi các kèo chấp bóng đá hôm nay dữ liệu thực sự được truyền cho nó trong một cuộc gọi cụ thể. Các kèo chấp bóng đá hôm nay đa hình được thể hiện trongBảng 37.1. Một số ví dụ về việc sử dụng của chúng xuất hiện trongPhần 37.5.10.
Bảng 37.1. Các kèo chấp bóng đá hôm nay đa hình
tên | gia đình | Mô tả |
---|---|---|
AnyEuity |
đơn giản | Cho biết rằng một hàm chấp nhận bất kỳ kèo chấp bóng đá hôm nay dữ liệu nào |
AnyArray |
đơn giản | Cho biết rằng một hàm chấp nhận bất kỳ kèo chấp bóng đá hôm nay dữ liệu mảng nào |
Anynonarray |
đơn giản | Cho biết rằng một hàm chấp nhận bất kỳ kèo chấp bóng đá hôm nay dữ liệu không phải nào |
Anyenum |
đơn giản | Cho biết rằng một hàm chấp nhận bất kỳ kèo chấp bóng đá hôm nay dữ liệu enum nào (xemPostgresql:) |
Anyrange |
đơn giản | Cho biết rằng một hàm chấp nhận bất kỳ kèo chấp bóng đá hôm nay dữ liệu phạm vi nào (xemPhần 8.17) |
AnyCompitiated |
Common | 19465_19584 |
AnycompatiBleArray |
phổ biến | chỉ ra rằng một hàm chấp nhận bất kỳ kèo chấp bóng đá hôm nay dữ liệu mảng nào, với tự động quảng bá nhiều đối số lên một kèo chấp bóng đá hôm nay dữ liệu chung |
Anycompatiblenonarray |
phổ biến | 20022_20151 |
AnycompatiBlerange |
Common | 20306_20431 |
20546_21028
choHồiđơn giảnxônghọ các kèo chấp bóng đá hôm nay đa hình, các quy tắc phù hợp và suy luận hoạt động như thế này:
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 chấp bóng đá hôm nay 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 chấp bóng đá hôm nay thực tế. Mỗi vị trí được khai báo làAnyArray
Có thể có bất kỳ kèo chấp bóng đá hôm nay dữ liệu mảng nào, nhưng tương tự tất cả chúng phải cùng kèo chấp bóng đá hôm nay. Và tương tự, các vị trí được khai báo làAnyrange
Tất cả phải là cùng kèo chấp bóng đá hôm nay 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ố21806_21818
, kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay 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 chấp bóng đá hôm nay 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 chấp bóng đá hôm nay xuất hiện trongAnyEuity
Vị trí và giống như kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay thực tế không phải là kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay thực tế phải là kèo chấp bóng đá hôm nay enum.
Do đó, khi có nhiều hơn một vị trí đối số được khai báo với kèo chấp bóng đá hôm nay đa hình, hiệu ứng ròng là chỉ được phép kết hợp một số kèo chấp bóng đá hôm nay đố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 chấp bóng đá hôm nay dữ liệu.
Khi giá trị trả về của hàm được khai báo là kèo chấp bóng đá hôm nay đa hình, phải có ít nhất một vị trí đối số cũng có tính đa hình và kèo chấp bóng đá hôm nay dữ liệu thực tế được cung cấp cho các đối số đa hình xác định kèo chấp bóng đá hôm nay 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
23654_23874f (AnyArray) trả về Anyenum
Sẽ chỉ chấp nhận các mảng của các kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay dữ liệu thực tế cho kèo chấp bóng đá hôm nay kết quả đa hình từ các đối số thuộc kèo chấp bóng đá hôm nay đa hình khác nhau trong cùng một họ; Ví dụAnyArray
có thể được suy luận từAnyEuity
hoặc ngược lại. Một ngoại lệ là kết quả đa hình của kèo chấp bóng đá hôm nayAnyrange
Yêu cầu đối số kèo chấp bóng đá hôm nayAnyrange
; 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 chấp bóng đá hôm nay phạm vi với cùng một kèo chấp bóng đá hôm nay phụ.
Lưu ý rằngAnynonarray
vàAnyenum
Không đại diện cho các biến kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay enum.
choCommonHồiHọ các kèo chấp bóng đá hôm nay đa hình, các quy tắc phù hợp và suy luận hoạt động xấp xỉ như đối vớiHồiđơn giảnHồigia đình, với một sự khác biệt lớn: các kèo chấp bóng đá hôm nay thực tế của các đối số không cần phải giống hệt nhau, miễn là chúng có thể được sử dụng một cách ngầm định cho một kèo chấp bóng đá hôm nay phổ biến duy nhất. kèo chấp bóng đá hôm nay phổ biến được chọn theo các quy tắc tương tự như đối vớiUnion
và các cấu trúc liên quan (xemPhần 10.5). Lựa chọn kèo chấp bóng đá hôm nay phổ biến xem xét các kèo chấp bóng đá hôm nay thực tế củaAnyCompitiated
vàAnycompatiblenonArray
Đầu vào, các kèo chấp bóng đá hôm nay phần tử mảng củaAnycompatiBleArray
Đầu vào và các phân nhóm phạm vi củaAnycompatiBlerange
Đầu vào. Nếu nhưAnycompatiblenonarray
26082_26200AnyCompiTive
vàAnycompatiblenonarray
Vị trí được tự động đúc theo kèo chấp bóng đá hôm nay đó và các đối số trongAnycompatiBleArray
Vị trí được tự động chuyển vào kèo chấp bóng đá hôm nay mảng cho kèo chấp bóng đá hôm nay đó.
Vì không có cách nào để chọn một kèo chấp bóng đá hôm nay phạm vi chỉ biết phân nhóm của nó, sử dụngAnycompatiBlerange
Yêu cầu tất cả các đối số được khai báo với kèo chấp bóng đá hôm nay đó có cùng kèo chấp bóng đá hôm nay phạm vi thực tế và kèo chấp bóng đá hôm nay phụ của kèo chấp bóng đá hôm nay đó đồng ý với kèo chấp bóng đá hôm nay chung được chọn, do đó không cần sử dụng các giá trị phạm vi. Như vớiAnyrange
, Sử dụngAnycompatiBlerange
Là kèo chấp bóng đá hôm nay kết quả hàm yêu cầu cóAnycompatiBlerange
Đối số.
Lưu ý rằng không cóAnycompatibleEnum
kèo chấp bóng đá hôm nay. Một kèo chấp bóng đá hôm nay như vậy sẽ không hữu ích lắm, vì thông thường không có bất kỳ diễn viên ngầm nào cho các kèo chấp bóng đá hôm nay enum, có nghĩa là sẽ không có cách nào để giải quyết một kèo chấp bóng đá hôm nay chung cho các đầu vào enum không giống nhau.
Theđơn giảnvàMạnhCommonHồiCác họ đa hình đại diện cho hai bộ biến kèo chấp bóng đá hôm nay độc lập. Xem xét ví dụ
Tạo chức năng MyFunc (A AnyEuity, B Anyelement, c AnyCompit, D AnyCompiTHER) Trả về mọi thứ tương thích như ...
Trong một cuộc gọi thực tế của hàm này, hai đầu vào đầu tiên phải có cùng kèo chấp bóng đá hôm nay. Hai đầu vào cuối cùng phải được thúc đẩy thành một kèo chấp bóng đá hôm nay chung, nhưng kèo chấp bóng đá hôm nay này không cần phải làm gì với kèo chấp bóng đá hôm nay của hai đầu vào đầu tiên. Kết quả sẽ có kèo chấp bóng đá hôm nay chung của hai đầu vào cuối cùng.
28005_28077Phần 37.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
hoặcVariadic
AnycompatiBleArray
. Đối với các mục đích của đối số khớp và xác định kèo chấp bóng đá hôm nay 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
hoặcAnycompatiblenonArray
tham số.
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.