Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2

8.17. Các loại phạm tỷ lệ kèo bóng đá tối nay

Các loại phạm tỷ lệ kèo bóng đá tối nay là các loại dữ liệu đại diện cho một phạm tỷ lệ kèo bóng đá tối nay giá trị của một số loại phần tử (được gọi là phạm tỷ lệ kèo bóng đá tối naySubType). Chẳng hạn, phạm tỷ lệ kèo bóng đá tối nay củaDấu thời giancó 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(tỷ lệ kèo bóng đá tối nayết tắt choHồiPhạm tỷ lệ kèo bóng đá tối nay dấu thời gianHồi) vàdấu thời gianlà 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 tỷ lệ kèo bóng đá tối nay giá trị.

Các loại phạm tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay duy nhất và bởi vì các khái niệm như phạm tỷ lệ kèo bóng đá tối nay chồng chéo có thể được biểu thị rõ ràng. tỷ lệ kèo bóng đá tối nayệc sử dụng phạm tỷ lệ kèo bóng đá tối nay thời gian và ngày cho mục đích lập lịch là ví dụ rõ ràng nhất; Nhưng phạm tỷ lệ kèo bóng đá tối nay giá, đo lường từ một công cụ, v.v. cũng có thể hữu ích.

Mỗi loại phạm tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay không liên tục, không trống, không khống. Hầu hết các nhà khai thác phạm tỷ lệ kèo bóng đá tối nay cũng hoạt động trên nhiều thứ khác và họ có một vài chức năng của riêng họ.

8.17.1. Phạm tỷ lệ kèo bóng đá tối nay tích hợp và các loại đa dạng

PostgreSQL đi kèm với các loại phạm tỷ lệ kèo bóng đá tối nay tích hợp sau:

  • int4range- Phạm tỷ lệ kèo bóng đá tối naySố nguyên, int4multirange- Multirange tương ứng

  • int8range- Phạm tỷ lệ kèo bóng đá tối nayBigint, int8multirange- Multirange tương ứng

  • numrange- Phạm tỷ lệ kèo bóng đá tối naySố, nummultirange- Multirange tương ứng

  • tsrange- Phạm tỷ lệ kèo bóng đá tối naydấu thời gian không có múi giờ, tsmultirange- Multirange tương ứng

  • tstzrange- phạm tỷ lệ kèo bóng đá tối naydấu thời gian với múi giờ, tstzmultirange- Multirange tương ứng

  • Daterange- Phạm tỷ lệ kèo bóng đá tối nayngày, Datemultirange- Multirange tương ứng

Ngoài ra, bạn có thể xác định các loại phạm tỷ lệ kèo bóng đá tối nay của riêng mình; nhìn thấyPostgreSQL: Tài liệu: 14:Để biết thêm thông tin.

8.17.2. Ví dụ

Tạo đặt phòng bảng (phòng int, trong thời gian tsrange);
Chèn vào giá trị đặt phòng
    (1108, '[2010-01-01 14:30, 2010-01-01 15:30)');

- ngăn chặn
Chọn Int4Range (10, 20) @ 3;

- Sự chồng chéo
Chọn numrange (11.1, 22.2) && numrange (20.0, 30.0);

- Trích xuất giới hạn trên
Chọn trên (int8range (15, 25));

- Tính toán giao lộ
Chọn int4range (10, 20) * int4range (15, 25);

- Phạm tỷ lệ kèo bóng đá tối nay có trống không?
Chọn isempty (numrange (1, 5));

xemBảng 9.53Bảng 9.55Để biết danh sách đầy đủ các toán tử và chức năng trên các loại phạm tỷ lệ kèo bóng đá tối nay.

8.17.3. Giới hạn bao gồm và độc quyền

Mỗi phạm tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay. Một giới hạn bao gồm có nghĩa là chính điểm biên cũng được bao gồm trong phạm tỷ lệ kèo bóng đá tối nay, trong khi giới hạn độc quyền có nghĩa là điểm biên không được bao gồm trong phạm tỷ lệ kèo bóng đá tối nay.

Trong dạng văn bản của một phạm tỷ lệ kèo bóng đá tối nay, 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 thị bằngHồi(. Tương tự như vậy, giới hạn trên bao gồm được biểu thị bằng]Voi, trong khi giới hạn trên độc quyền được biểu diễn bởiHồi). (Nhìn thấyPhần 8.17.5Để biết thêm chi tiết.)

Các chức năngLower_incUpper_incKiểm tra tính bao gồm của giới hạn dưới và trên của giá trị phạm tỷ lệ kèo bóng đá tối nay, tương ứng.

8.17.4. Phạm tỷ lệ kèo bóng đá tối nay vô hạn (không giới hạn)

Giới hạn dưới của phạm tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay, ví dụ:(, 3]. Tương tự như vậy, nếu giới hạn trên của phạm tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay. Nếu cả giới hạn dưới và trên đều bị bỏ qua, tất cả các giá trị của loại phần tử được coi là nằm trong phạm tỷ lệ kèo bóng đá tối nay. Chỉ định một giới hạn bị thiếu là bao gồm được tự động chuyển đổi thành độc quyền, ví dụ:[,]đượ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 tỷ lệ kèo bóng đá tối nay đặc biệt và được coi là vượt xa mọi giá trị +/- Infinity của loại phạm tỷ lệ kèo bóng đá tối nay.

Các tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay dấu thời gian,[hôm nay, vô cực)không bao gồm đặc biệtDấu thời giangiá trịVô cực, trong khi[Hôm nay, Infinity]Bao gồm nó, cũng như[hôm nay,)[hôm nay,].

Các chức năngLower_infUpper_infKiểm tra cho giới hạn thấp hơn và trên của phạm tỷ lệ kèo bóng đá tối nay, tương ứng.

8.17.5. Phạm tỷ lệ kèo bóng đá tối nay đầu vào/đầu ra

Đầu vào cho giá trị phạm tỷ lệ kèo bóng đá tối nay 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]
trống

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 tỷ lệ kèo bóng đá tối nay trống (một phạm tỷ lệ kèo bóng đá tối nay không chứa điểm).

Thegiới hạn thấp hơncó 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ênCó 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 tỷ lệ kèo bóng đá tối nay. Để đặt một báo giá kép hoặc dấu gạch chéo ngược trong một giá trị ràng buộc được trích dẫn, đi trước nó với một dấu gạch chéo ngược. . Ngoài ra, để tỷ lệ kèo bóng đá tối nayết một giá trị ràng buộc là một chuỗi trống, tỷ lệ kèo bóng đá tối nayết"", Vì tỷ lệ kèo bóng đá tối nayết không có gì có nghĩa là một ràng buộc vô hạn.

khoảng trắng được cho phép trước và sau giá trị phạm tỷ lệ kèo bóng đá tối nay, 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 làm 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ể.)

ghi chú

Các quy tắc này rất giống với các quy tắc để tỷ lệ kèo bóng đá tối nayết các giá trị trường trong các chữ loại tổng hợp. Nhìn thấyPhần 8.16.6để bình luận bổ sung.

Ví dụ:

20003_20355

20367_2041520478_20823

Ví dụ:

Chọn '' :: Int4Multirange;
Chọn '[3,7)' :: int4Multirange;
Chọn '[3,7), [8,9)' :: int4multirange;

8.17.6. Xây dựng phạm tỷ lệ kèo bóng đá tối nay và đa ảo

21230_21792()Hàng, Hồi(], [)hoặc[]Khăn. Ví dụ:

22198_22722

Mỗi loại phạm tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay của loại thích hợp. Ví dụ:

chọn nummultirange ();
Chọn nummultirange (numrange (1.0, 14.0));
Chọn NumMultirange (NumRange (1.0, 14.0), NumRange (20.0, 25.0));

8.17.7. Các loại phạm tỷ lệ kèo bóng đá tối nay rời rạc

Phạm tỷ lệ kèo bóng đá tối nay riêng biệt là một loại có loại phần tử có một phần được xác định rõMạnhBước, chẳng hạn nhưSố nguyênhoặcngày. Trong các loại 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. Điều này tương phản với các phạm tỷ lệ kèo bóng đá tối nay liên tục, trong đó nó luôn luôn (hoặc hầu như luôn luôn) có thể xác định các giá trị phần tử khác giữa hai giá trị đã cho. Ví dụ: một phạm tỷ lệ kèo bóng đá tối nay trênSốLoại liên tục, như là một phạm tỷ lệ kèo bóng đá tối nay trênDấu thời gian. (Mặc dùDấu thời gianCó độ 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 tỷ lệ kèo bóng đá tối nay riêng biệt là có một ý tưởng rõ ràng về AVangTiếp theoHồihoặcTrướcHồiGiá 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 tỷ lệ kèo bóng đá tối nay, bằng cách chọn giá trị phần tử tiếp theo hoặc trước đó thay vì giá trị ban đầu. Ví dụ: trong loại phạm tỷ lệ kèo bóng đá tối nay số nguyên[4,8](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 tỷ lệ kèo bóng đá tối nay trên số.

Một loại phạm tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay để 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. Nếu một hàm chính trị không được chỉ định, thì các phạm tỷ lệ kèo bóng đá tối nay với định dạng khác nhau sẽ luôn được coi là không đồng đều, mặc dù chúng có thể đại diện cho cùng một tập hợp các giá trị trong thực tế.

Các loại phạm tỷ lệ kèo bóng đá tối nay tích hợpint4range, int8rangeDaterangeTất cả đều sử dụng một hình thức kinh điển bao gồm giới hạn dưới và tỷ lệ kèo bóng đá tối nay trừ giới hạn trên; đó là,[). Tuy nhiên, các loại phạm tỷ lệ kèo bóng đá tối nay do người dùng xác định có thể sử dụng các quy ước khác.

8.17.8. Xác định các loại phạm tỷ lệ kèo bóng đá tối nay mới

Người dùng có thể xác định các loại phạm tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay trên các phân nhóm không được cung cấp trong số các loại phạm tỷ lệ kèo bóng đá tối nay tích hợp. Ví dụ: để xác định một loại phân nhóm mới26103_26111:

Tạo loại floatrange dưới dạng phạm tỷ lệ kèo bóng đá tối nay (
    phân nhóm = float8,
    SubType_Diff = float8mi
);

Chọn '[1.234, 5.678]' :: floatrange;

float8không có ý nghĩaBướcHồi, chúng tôi không xác định chức năng chính tắc hóa trong ví dụ này.

Khi bạn xác định phạm tỷ lệ kèo bóng đá tối nay của riêng mình, bạn sẽ tự động nhận được một loại đa dạng tương ứng.

26585_26793

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,26906_26919Lệnh phải chỉ định ACanonical26988_27254[1, 7][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. Ngoài tỷ lệ kèo bóng đá tối nayệc điều chỉnh định dạng giới hạn bao gồm/độc quyền, chức năng chính trị hóa có thể làm tròn các giá trị ranh giới, trong trường hợp kích thước bước mong muốn lớn hơn so với những gì phân nhóm có khả năng lưu trữ. Chẳng hạn, loại phạm tỷ lệ kèo bóng đá tối nay trênDấu thời gian27822_28019

28029_28152SubType_Diff, hàm. (Chỉ mục vẫn sẽ hoạt động mà không cóSubType_Diff, nhưng nó có khả năng kém hiệu quả hơn đáng kể so với nếu hàm khác biệt được cung cấp.) Hàm chênh lệch phân nhóm có hai giá trị đầu vào của phân nhóm và trả về sự khác biệt của chúng (nghĩa là,xtrừy) được biểu diễn dưới dạngfloat8Giá trị. Trong ví dụ của chúng tôi ở trên, hàmfloat8miĐiều đó làm cơ sở cho thông thườngfloat8Có thể sử dụng toán tử trừ; Nhưng đối với bất kỳ tỷ lệ kèo bóng đá tối nay phụ nào khác, một số tỷ lệ kèo bóng đá tối nay chuyển đổi sẽ là cần thiết. Một số suy nghĩ sáng tạo về làm thế nào để thể hiện sự khác biệt khi các con số cũng có thể cần thiết. Đến mức lớn nhất có thể,SubType_DiffHà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_DiffHàm là:

29396_29666

xemPostgreSQL: Tài liệu: 14:Để biết thêm thông tin về tỷ lệ kèo bóng đá tối nayệc tạo các loại phạm tỷ lệ kèo bóng đá tối nay.

8.17.9. Lập chỉ mục

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 tỷ lệ kèo bóng đá tối nay. 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. Chẳng hạn, để tạo chỉ mục GIST:

30351_30419

Chỉ số sp-gist trên phạm tỷ lệ kèo bóng đá tối nay có thể tăng tốc các truy vấn liên quan đến các toán tử phạm tỷ lệ kèo bóng đá tối nay này:=, &&, <@, @, <<, , -|-, &<&. 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. Một chỉ mục GIST trên các phạm tỷ lệ kèo bóng đá tối nay và chỉ mục GIST trên đa ảo cũng có thể tăng tốc các truy vấn liên quan đến phạm tỷ lệ kèo bóng đá tối nay loại chéo này lên đa phương tiện và đa hóa thành các toán tử phạm tỷ lệ kèo bóng đá tối nay tương ứng:&&, <@, @, <<, , -|-, &<&. Nhìn thấyBảng 9.53Để 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 tỷ lệ kèo bóng đá tối nay. Đối với các loại chỉ mục này, về cơ bản, hoạt động phạm tỷ lệ kèo bóng đá tối nay hữu ích duy nhất là bình đẳng. Có một thứ tự sắp xếp B-cây được xác định cho các giá trị phạm tỷ lệ kèo bóng đá tối nay, với tương ứng<Các nhà khai thác, nhưng tỷ lệ kèo bóng đá tối nayệc đặ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 tỷ lệ kèo bóng đá tối nay 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ế.

8.17.10. Các ràng buộc trên phạm tỷ lệ kèo bóng đá tối nay

trong khiđộc đáolà 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 tỷ lệ kèo bóng đá tối nay. 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 ... tỷ lệ kèo bóng đá tối nay trừ32773_32847Hồi32886_32903HồiTrên một loại phạm tỷ lệ kèo bóng đá tối nay. Ví dụ:

Tạo đặt phòng bảng (
    trong thời gian tsrange,
    tỷ lệ kèo bóng đá tối nay trừ bằng cách sử dụng gist (trong thời gian với &&)
);

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:

33229_33640

Bạn có thể sử dụngbtree_gistMở 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 tỷ lệ kèo bóng đá tối nay để 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 tỷ lệ kèo bóng đá tối nay chồng chéo chỉ khi số phòng họp bằng nhau:

34133_34867

Gửi hiệu chỉnh

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.