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
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

8.17. Các loại phạm kèo chấp bóng đá hôm nay

Các loại phạm kèo chấp bóng đá hôm nay là các loại dữ liệu đại diện cho một phạm kèo chấp bóng đá hôm nay giá trị của một số loại phần tử (được gọi là phạm kèo chấp bóng đá hôm nayphân nhóm). Chẳng hạn, phạm kèo chấp bóng đá hôm 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(kèo chấp bóng đá hôm nayết tắt choPhạm kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm nay giá trị.

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

8.17.1. Các loại phạm kèo chấp bóng đá hôm nay tích hợp

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

  • int4range- Phạm kèo chấp bóng đá hôm naySố nguyên

  • int8range- Phạm kèo chấp bóng đá hôm nayBigint

  • numrange- Phạm kèo chấp bóng đá hôm naySố

  • tsrange- Phạm kèo chấp bóng đá hôm naydấu thời gian không có múi giờ

  • tstzrange- Phạm kèo chấp bóng đá hôm naydấu thời gian với múi giờ

  • Daterange- Phạm kèo chấp bóng đá hôm nayngày

Ngoài ra, bạn có thể xác định các loại phạm kèo chấp bóng đá hôm nay của riêng mình; nhìn thấyPostgreSQL: Tài liệu:Để 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);

xemBảng 9.50Bảng 9.51Để 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 chấp bóng đá hôm nay.

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

Mỗi phạm kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm nay.

Ở dạng văn bản của một phạm kèo chấp bóng đá hôm 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 diễn bởiHồi(. Tương tự như vậy, giới hạn trên bao gồm được biểu thị bằng]xông, trong khi giới hạn trên độc quyền được biểu diễn bở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 kèo chấp bóng đá hôm nay, tương ứng.

8.17.4. Phạm kèo chấp bóng đá hôm nay vô hạn (không giới hạn)

Giới hạn dưới của phạm kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm nay, ví dụ:(, 3]. Tương tự như vậy, nếu giới hạn trên của phạm kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm nay.[,]đượ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 chấp bóng đá hôm nay đặc biệt và được coi là vượt xa mọi giá trị +/- Infinity của loại phạm kèo chấp bóng đá hôm nay.

Các kèo chấp bóng đá hôm nay phần tử có khái niệmHồiVô cựcCó 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 chấp bóng đá hôm nay dấu thời gian,[kèo chấp bóng đá hôm nay, vô cực)không bao gồm đặc biệtdấu thời giangiá trịVô cực, trong khi[kèo chấp bóng đá hôm nay, Infinity]Bao gồm nó, cũng như[kèo chấp bóng đá hôm nay,)[kèo chấp bóng đá 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 kèo chấp bóng đá hôm nay, tương ứng.

8.17.5. Phạm kèo chấp bóng đá hôm nay đầu vào/đầu ra

Đầu vào cho giá trị phạm kèo chấp bóng đá hôm 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]

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 chấp bóng đá hôm nay trống (một phạm kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm nay."", vì kèo chấp bóng đá hôm nayế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 chấp bóng đá hôm nay, nhưng bất kỳ khoảng trắng nào giữa dấu ngoặc 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ể.)

Lưu ý

Các quy tắc này rất giống với các quy tắc để kèo chấp bóng đá hôm 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ụ:

- Bao gồm 3, không bao gồm 7 và bao gồm tất cả các điểm ở giữa

8.17.6. Xây dựng phạm kèo chấp bóng đá hôm nay

Mỗi loại phạm kèo chấp bóng đá hôm nay có hàm hàm tạo có cùng tên với loại phạm kèo chấp bóng đá hôm nay. Sử dụng hàm hàm tạo thường thuận tiện hơn so với kèo chấp bóng đá hôm nayệc kèo chấp bóng đá hôm nayế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ồi, (], [)hoặcHồi[]Hồi. 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

8.17.7. Các loại phạm kèo chấp bóng đá hôm nay rời rạc

Một phạm kèo chấp bóng đá hôm nay rời rạc là một loại có loại phần tử có định nghĩa rõ ràngBước, chẳng hạn nhưSố nguyênhoặcngày. Trong các kèo chấp bóng đá hôm nay 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 chấp bóng đá hôm nay trênTimestamp. (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 kèo chấp bóng đá hôm nay riêng biệt là có một ý tưởng rõ ràng về ATiếp theohoặcTrướcGiá 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 chấp bóng đá hôm 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.[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 kèo chấp bóng đá hôm nay trên số.

Một loại phạm kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm 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.

Các loại phạm kèo chấp bóng đá hôm nay tích hợpint4range, int8rangeDaterangeTấ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 chấp bóng đá hôm nay trừ giới hạn trên; đó là,[). Tuy nhiên, các loại phạm kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm nay mới

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

Tạo loại floatrange dưới dạng phạm kèo chấp bóng đá hôm nay (

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

25045_25253

Nếu phân nhóm được coi là có các giá trị riêng biệt thay vì liên tục,Tạo kèo chấp bóng đá hôm nayLệnh phải chỉ định ACanonicalHàm. Hàm Canonicalization có giá trị phạm kèo chấp bóng đá hôm nay đầu vào và phải trả về giá trị phạm kèo chấp bóng đá hôm nay tương đương có thể có giới hạn và định dạng khác nhau.[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.Timestampcó thể được định nghĩa có kích thước bước là một giờ, trong trường hợp đó, hàm chính tắc hóa sẽ cần phải làm tròn giới hạn mà không phải là bội số của một giờ, hoặc có thể ném lỗi thay thế.

26489_26612SubType_Diff, chức năng. (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 khi 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ỳ kèo chấp bóng đá hôm nay phụ nào khác, một số kèo chấp bóng đá hôm nay chuyển đổi sẽ là cần thiết.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à:

27856_28126

xemPostgreSQL: Tài liệu:Để biết thêm thông tin về kèo chấp bóng đá hôm nayệc tạo các loại phạm kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm nay. Chẳng hạn, để tạo chỉ mục GIST:

28739_28807

Chỉ số sp-gist có thể tăng tốc các truy vấn liên quan đến các toán tử phạm kèo chấp bóng đá hôm nay này:=, &&, <@, @, <<, , -|-, &<&(xemBảng 9.50Để 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 chấp bóng đá hôm nay. Đối với các loại chỉ mục này, về cơ bản, hoạt động phạm kèo chấp bóng đá hôm nay hữu ích duy nhất là bình đẳng.<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 chấp bóng đá hôm 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 kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm 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 ... kèo chấp bóng đá hôm nay trừ). Các ràng buộc kèo chấp bóng đá hôm nay trừ cho phép đặc tả các ràng buộc nhưHồiKhông chồng chéoxôngTrên một loại phạm kèo chấp bóng đá hôm nay. 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_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 kèo chấp bóng đá hôm 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 kèo chấp bóng đá hôm nay chồng chéo chỉ khi số phòng họp bằng nhau:

Tạo phần mở rộng btree_gist;