Các loại phạm kèo bóng đá hôm nay và ngày mai là các loại dữ liệu đại diện cho một phạm kèo bóng đá hôm nay và ngày mai giá trị của một số loại phần tử (được gọi là phạm kèo bóng đá hôm nay và ngày maiphân nhóm). Chẳng hạn, phạm kèo bóng đá hôm nay và ngày mai củadấu thời gian
có thể được sử dụng để thể hiện khoảng thời gian mà một phòng họp được bảo lưu. Trong trường hợp này, kiểu dữ liệu làtsrange
(kèo bóng đá hôm nay và ngày maiết tắt choHồiPhạm kèo bóng đá hôm nay và ngày mai dấu thời gianHàng) vàdấu thời gian
là phân nhóm. Loại phụ phải có tổng thứ tự để nó được xác định rõ liệu các giá trị phần tử có nằm trong, trước hoặc sau một phạm kèo bóng đá hôm nay và ngày mai giá trị.
Các loại phạm kèo bóng đá hôm nay và ngày mai rất hữu ích vì chúng đại diện cho nhiều giá trị phần tử trong một giá trị phạm kèo bóng đá hôm nay và ngày mai duy nhất và bởi vì các khái niệm như phạm kèo bóng đá hôm nay và ngày mai chồng chéo có thể được biểu thị rõ ràng. kèo bóng đá hôm nay và ngày maiệc sử dụng phạm kèo bóng đá hôm nay và ngày mai thời gian và ngày cho mục đích lập lịch là ví dụ rõ ràng nhất;
Mọi loại phạm kèo bóng đá hôm nay và ngày mai đều có loại đa dạng tương ứng. Multirange là một danh sách được đặt hàng của các phạm kèo bóng đá hôm nay và ngày mai không liên tục, không trống, không khống.
PostgreSQL đi kèm với các loại phạm kèo bóng đá hôm nay và ngày mai tích hợp sau:
int4range
- Phạm kèo bóng đá hôm nay và ngày maiSố nguyên
, INT4Multirange
- Multirange tương ứng
int8range
- Phạm kèo bóng đá hôm nay và ngày maiBigint
, int8multirange
- Multirange tương ứng
numrange
- Phạm kèo bóng đá hôm nay và ngày maiSố
, nummultirange
- Multirange tương ứng
tsrange
- Phạm kèo bóng đá hôm nay và ngày maidấu thời gian không có múi giờ
, tsmultirange
- Multirange tương ứng
tstzrange
- Phạm kèo bóng đá hôm nay và ngày maidấu thời gian với múi giờ
, tstzmultirange
- Multirange tương ứng
Daterange
- Phạm kèo bóng đá hôm nay và ngày maingày
, 13114_13130
- Multirange tương ứng
Ngoài ra, bạn có thể xác định các loại phạm kèo bóng đá hôm nay và ngày mai của riêng bạn; nhìn thấyTạo kèo bóng đá hôm nay và ngày maiĐể biết thêm thông tin.
Tạo đặt phòng bảng (phòng int, trong thời gian tsrange);
xemBảng 9.58vàBảng 9.60Để biết danh sách đầy đủ các toán tử và chức năng trên các loại phạm kèo bóng đá hôm nay và ngày mai.
Mỗi phạm kèo bóng đá hôm nay và ngày mai không trống có hai giới hạn, giới hạn dưới và giới hạn trên. Tất cả các điểm giữa các giá trị này được bao gồm trong phạm kèo bóng đá hôm nay và ngày mai.
Ở dạng văn bản của một phạm kèo bóng đá hôm nay và ngày mai, giới hạn dưới bao gồm được biểu thị bằng[
Trong khi giới hạn dưới độc quyền được biểu diễn bởi(
. Tương tự như vậy, giới hạn trên bao gồm được biểu thị bằng]
, trong khi giới hạn trên độc quyền được biểu diễn bởi)
Hồi. (Nhìn thấyPhần 8.17.5Để biết thêm chi tiết.)
Các chức năngLower_inc
vàUpper_inc
Kiểm tra tính bao gồm của giới hạn dưới và trên của giá trị phạm kèo bóng đá hôm nay và ngày mai, tương ứng.
Giới hạn dưới của phạm kèo bóng đá hôm nay và ngày mai có thể được bỏ qua, có nghĩa là tất cả các giá trị nhỏ hơn giới hạn trên được bao gồm trong phạm kèo bóng đá hôm nay và ngày mai, ví dụ:(, 3]
. Tương tự như vậy, nếu giới hạn trên của phạm kèo bóng đá hôm nay và ngày mai bị bỏ qua, thì tất cả các giá trị lớn hơn giới hạn dưới được bao gồm trong phạm kèo bóng đá hôm nay và ngày mai.[,]
được chuyển đổi thành(,)
. Bạn có thể nghĩ về các giá trị bị thiếu này là +/- Infinity, nhưng chúng là các giá trị loại phạm kèo bóng đá hôm nay và ngày mai đặc biệt và được coi là vượt xa mọi giá trị +/- Infinity của loại phạm kèo bóng đá hôm nay và ngày mai.
Các kèo bóng đá hôm nay và ngày mai phần tử có khái niệmVô cựcHồiCó thể sử dụng chúng làm giá trị ràng buộc rõ ràng. Ví dụ: với phạm kèo bóng đá hôm nay và ngày mai dấu thời gian,[hôm nay, vô cực)
không bao gồm đặc biệtDấu thời gian
giá trịVô cực
, trong khi[Hôm nay, Infinity]
Bao gồm nó, cũng như[hôm nay,)
và[hôm nay,]
.
Các chức năngLower_inf
vàUpper_inf
Kiểm tra cho giới hạn thấp hơn và trên của phạm kèo bóng đá hôm nay và ngày mai, tương ứng.
Đầu vào cho giá trị phạm kèo bóng đá hôm nay và ngày mai phải tuân theo một trong các mẫu sau:
(giới hạn thấp hơn
,giới hạn trên
)giới hạn thấp hơn
,giới hạn trên
]giới hạn thấp hơn
,giới hạn trên
)giới hạn thấp hơn
,giới hạn trên
]
dấu ngoặc đơn hoặc dấu ngoặc cho biết liệu giới hạn dưới và trên là độc quyền hay bao gồm, như được mô tả trước đây. Lưu ý rằng mẫu cuối cùng làtrống
, đại diện cho một phạm kèo bóng đá hôm nay và ngày mai trống (một phạm kèo bóng đá hôm nay và ngày mai không chứa điểm).
Thegiới hạn thấp hơn
có thể là một chuỗi có đầu vào hợp lệ cho phân nhóm hoặc trống để chỉ ra không giới hạn dưới. Tương tự như vậy,giới hạn trên
có thể là một chuỗi có đầu vào hợp lệ cho phân nhóm hoặc trống để chỉ ra không giới hạn trên.
Mỗi giá trị ràng buộc có thể được trích dẫn bằng cách sử dụng"
(trích dẫn kép) ký tự. Điều này là cần thiết nếu giá trị ràng buộc chứa dấu ngoặc đơn, dấu ngoặc, dấu phẩy, dấu ngoặc kép hoặc dấu gạch chéo ngược, vì các ký tự này sẽ được coi là một phần của cú pháp phạm kèo bóng đá hôm nay và ngày mai.""
, Vì kèo bóng đá hôm nay và ngày maiết không có gì có nghĩa là một ràng buộc vô hạn.
khoảng trắng được phép trước và sau giá trị phạm kèo bóng đá hôm nay và ngày mai, nhưng bất kỳ khoảng trắng nào giữa dấu ngoặc đơn hoặc dấu ngoặc được lấy như một phần của giá trị giới hạn dưới hoặc trên. (Tùy thuộc vào loại phần tử, nó có thể hoặc không đáng kể.)
Các quy tắc này rất giống với các quy tắc để kèo bóng đá hôm nay và ngày maiết các giá trị trường bằng chữ loại tổng hợp. Nhìn thấyPhần 8.16.6để bình luận bổ sung.
Ví dụ:
- Bao gồm 3, không bao gồm 7 và bao gồm tất cả các điểm ở giữa
Đầu vào cho đa số là dấu ngoặc xoăn (và
) chứa các phạm kèo bóng đá hôm nay và ngày mai không hoặc hợp lệ hơn, được phân tách bằng dấu phẩy. Whitespace được phép xung quanh dấu ngoặc và dấu phẩy.
ví dụ:
Chọn '' :: Int4Multirange;
Mỗi loại phạm kèo bóng đá hôm nay và ngày mai có hàm hàm tạo có cùng tên với loại phạm kèo bóng đá hôm nay và ngày mai. Sử dụng hàm hàm tạo thường thuận tiện hơn so với kèo bóng đá hôm nay và ngày maiệc kèo bóng đá hôm nay và ngày maiết một hằng số theo nghĩa đen, vì nó tránh được sự cần thiết phải trích dẫn thêm các giá trị bị ràng buộc.()
Hàng, Hồi(]
Voi, Mạnh[)
hoặc[]
Hàng. Ví dụ:
- Hình thức đầy đủ là: giới hạn dưới, giới hạn trên và đối số văn bản cho biết
Mỗi loại phạm kèo bóng đá hôm nay và ngày mai cũng có một hàm tạo đa dạng có cùng tên với loại đa loại. Hàm hàm tạo không có hoặc nhiều đối số là tất cả các phạm kèo bóng đá hôm nay và ngày mai của loại thích hợp.
chọn nummultirange ();
Phạm kèo bóng đá hôm nay và ngày mai riêng biệt là một loại có loại phần tử có được xác định rõBướcHồi, chẳng hạn nhưSố nguyên
hoặcngày
. Trong các kèo bóng đá hôm nay và ngày mai này, hai yếu tố có thể nói là liền kề, khi không có giá trị hợp lệ giữa chúng.Số
Loại liên tục, như là một phạm kèo bóng đá hôm nay và ngày mai trêndấu thời gian
. (Mặc dùDấu thời gian
có độ chính xác hạn chế, và về mặt lý thuyết có thể được coi là riêng biệt, tốt hơn là xem xét nó liên tục vì kích thước bước thường không được quan tâm.)
Một cách khác để suy nghĩ về một loại phạm kèo bóng đá hôm nay và ngày mai riêng biệt là có một ý tưởng rõ ràng về ATiếp theohoặcTrướcVoiGiá trị cho mỗi giá trị phần tử. Biết rằng, có thể chuyển đổi giữa các biểu diễn bao gồm và độc quyền của giới hạn phạm kèo bóng đá hôm nay và ngày mai, bằng cách chọn giá trị phần tử tiếp theo hoặc trước đó thay vì giá trị ban đầu.[4,8]
và(3,9)
biểu thị cùng một tập hợp các giá trị; nhưng điều này sẽ không như vậy đối với một phạm kèo bóng đá hôm nay và ngày mai trên số.
Một loại phạm kèo bóng đá hôm nay và ngày mai rời rạc phải cóCanonicalizationHàm nhận thức được kích thước bước mong muốn cho loại phần tử. Hàm Canonicalization được tính phí chuyển đổi các giá trị tương đương của loại phạm kèo bóng đá hôm nay và ngày mai để có các biểu diễn giống hệt nhau, đặc biệt là giới hạn bao gồm hoặc độc quyền.
Các loại phạm kèo bóng đá hôm nay và ngày mai tích hợpint4range
, int8range
vàDaterange
Tất cả sử dụng một hình thức kinh điển bao gồm giới hạn dưới và kèo bóng đá hôm nay và ngày mai trừ giới hạn trên; đó là,[)
. Tuy nhiên, các loại phạm kèo bóng đá hôm nay và ngày mai do người dùng xác định có thể sử dụng các quy ước khác.
Người dùng có thể xác định các loại phạm kèo bóng đá hôm nay và ngày mai của riêng họ. Lý do phổ biến nhất để làm điều này là sử dụng các phạm kèo bóng đá hôm nay và ngày mai trên các phân nhóm không được cung cấp trong số các loại phạm kèo bóng đá hôm nay và ngày mai tích hợp.float8
:
Tạo loại floatrange dưới dạng phạm kèo bóng đá hôm nay và ngày mai (
vìfloat8
không có ý nghĩaBước, chúng tôi không xác định chức năng Canonicalization trong ví dụ này.
Khi bạn xác định phạm kèo bóng đá hôm nay và ngày mai của riêng mình, bạn sẽ tự động nhận được loại đa loại tương ứng.
27351_27559
Nếu phân nhóm được coi là có giá trị riêng biệt thay vì các giá trị liên tục,Tạo kèo bóng đá hôm nay và ngày mai
lệnh phải chỉ định ACanonical
Hàm. Hàm Canonicalization có giá trị phạm kèo bóng đá hôm nay và ngày mai đầu vào và phải trả về giá trị phạm kèo bóng đá hôm nay và ngày mai tương đương có thể có giới hạn và định dạng khác nhau.[1, 7]
và[1, 8)
, phải giống hệt nhau. Không quan trọng bạn chọn cách đại diện nào là chính thức, miễn là hai giá trị tương đương với các định dạng khác nhau luôn được ánh xạ tới cùng một giá trị với cùng một định dạng.dấu thời gian
28588_28785
28795_28918SubType_Diff
, chức năng. (Chỉ mục vẫn sẽ hoạt động mà không cóSubType_Diff
29045_29251x
trừY
) được biểu diễn dưới dạngfloat8
Giá trị. Trong ví dụ của chúng tôi ở trên, hàmfloat8mi
Điều đó làm cơ sở cho thông thườngfloat8
Có thể sử dụng toán tử trừ; Nhưng đối với bất kỳ kèo bóng đá hôm nay và ngày mai phụ nào khác, một số kèo bóng đá hôm nay và ngày mai chuyển đổi sẽ là cần thiết.SubType_Diff
Hàm nên đồng ý với thứ tự sắp xếp được ngụ ý bởi lớp toán tử được chọn và đối chiếu; nghĩa là, kết quả của nó sẽ tích cực bất cứ khi nào đối số đầu tiên của nó lớn hơn thứ hai theo thứ tự sắp xếp.
Một ví dụ ít kích thích của ASubType_Diff
Hàm là:
30162_30432
xemTạo kèo bóng đá hôm nay và ngày maiĐể biết thêm thông tin về kèo bóng đá hôm nay và ngày maiệc tạo các loại phạm kèo bóng đá hôm nay và ngày mai.
Các chỉ mục GIST và SP-GIST có thể được tạo cho các cột bảng của các loại phạm kèo bóng đá hôm nay và ngày mai. Các chỉ mục GIST cũng có thể được tạo cho các cột bảng của nhiều loại.
31170_31238
Chỉ số sp-gist trên phạm kèo bóng đá hôm nay và ngày mai có thể tăng tốc các truy vấn liên quan đến các toán tử phạm kèo bóng đá hôm nay và ngày mai này:=
, &&
, <@
, @
, <<
, ,
-|-
, &<
và&
. Một chỉ mục GIST trên đa ảo có thể tăng tốc các truy vấn liên quan đến cùng một bộ toán tử đa dạng.&&
, <@
, @
, <<
, ,
-|-
, &<
và&
. Nhìn thấyBảng 9.58Để biết thêm thông tin.
Ngoài ra, các chỉ mục b-cây và băm có thể được tạo cho các cột bảng của các loại phạm kèo bóng đá hôm nay và ngày mai. Đối với các loại chỉ mục này, về cơ bản, hoạt động phạm kèo bóng đá hôm nay và ngày mai hữu ích duy nhất là bình đẳng.<
vàNgười vận hành, nhưng đặt hàng khá tùy tiện và thường không hữu ích trong thế giới thực. Hỗ trợ b-cây và băm của các loại phạm kèo bóng đá hôm nay và ngày mai chủ yếu có nghĩa là cho phép phân loại và băm nội tâm trong các truy vấn, thay vì tạo các chỉ mục thực tế.
trong khiđộc đáo
là một ràng buộc tự nhiên cho các giá trị vô hướng, nó thường không phù hợp với các loại phạm kèo bóng đá hôm nay và ngày mai. Thay vào đó, một ràng buộc loại trừ thường phù hợp hơn (xemTạo bảng ... ràng buộc ... kèo bóng đá hôm nay và ngày mai trừ). Các ràng buộc kèo bóng đá hôm nay và ngày mai trừ cho phép đặc tả các ràng buộc nhưKhông chồng chéoTrên một loại phạm kèo bóng đá hôm nay và ngày mai. Ví dụ:
Tạo đặt phòng bảng (
ràng buộc đó sẽ ngăn bất kỳ giá trị chồng chéo nào tồn tại trong bảng cùng một lúc:
Chèn vào các giá trị đặt phòng
Bạn có thể sử dụngbtree_gist
Mở rộng để xác định các ràng buộc loại trừ trên các loại dữ liệu vô hướng đơn giản, sau đó có thể được kết hợp với các loại trừ phạm kèo bóng đá hôm nay và ngày mai để linh hoạt tối đa. Ví dụ, saubtree_gist
Được cài đặt, ràng buộc sau đây sẽ từ chối các phạm kèo bóng đá hôm nay và ngày mai chồng chéo chỉ khi số phòng họp bằng nhau:
Tạo phần mở rộng btree_gist;