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 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

8.15. tỷ lệ kèo bóng đá 88#

PostgreSQLCho phép các cột của bảng được xác định là tỷ lệ kèo bóng đá 88 đa chiều dài thay đổi. Các tỷ lệ kèo bóng đá 88 thuộc bất kỳ loại cơ sở, loại enum, loại tổng hợp, loại phạm vi hoặc miền có thể được xác định bởi người dùng.

8.15.1. Khai báo các loại tỷ lệ kèo bóng đá 88#

Để minh họa việc sử dụng các loại tỷ lệ kèo bóng đá 88, chúng tôi tạo bảng này:

Tạo bảng SAL_EMP (

Như được hiển thị, một kiểu dữ liệu tỷ lệ kèo bóng đá 88 được đặt tên bằng cách nối các dấu ngoặc vuông ([]) đến tên kiểu dữ liệu của các phần tử tỷ lệ kèo bóng đá 88. Lệnh trên sẽ tạo một bảng có tênSAL_EMPVới một cột loạiText(tên), một tỷ lệ kèo bóng đá 88 một chiều của loạiSố nguyên(pay_by_quarter), đại diện cho tiền lương của nhân viên theo quý và một tỷ lệ kèo bóng đá 88 hai chiềuText(Lịch trình), đại diện cho lịch trình hàng tuần của nhân viên.

Cú pháp choTạo bảngCho phép kích thước chính xác của tỷ lệ kèo bóng đá 88 được chỉ định, ví dụ:

Tạo bảng Tictactoe (

Tuy nhiên, việc triển khai hiện tại bỏ qua mọi giới hạn kích thước tỷ lệ kèo bóng đá 88 được cung cấp, tức là, hành vi này giống như đối với các tỷ lệ kèo bóng đá 88 có độ dài không xác định.

Việc triển khai hiện tại cũng không thực thi số lượng kích thước được khai báo. Các tỷ lệ kèo bóng đá 88 thuộc loại phần tử cụ thể đều được coi là cùng loại, bất kể kích thước hoặc số lượng kích thước.Tạo bảngchỉ đơn giản là tài liệu; nó không ảnh hưởng đến hành vi thời gian chạy.

một cú pháp thay thế, phù hợp với tiêu chuẩn SQL bằng cách sử dụng từ khóatỷ lệ kèo bóng đá 88, có thể được sử dụng cho các tỷ lệ kèo bóng đá 88 một chiều.pay_by_quartercó thể được định nghĩa là:

pay_by_quarter tỷ lệ kèo bóng đá 88 số nguyên [4],

Hoặc, nếu không có kích thước tỷ lệ kèo bóng đá 88 nào được chỉ định:

pay_by_quarter tỷ lệ kèo bóng đá 88 số nguyên,

As before, however,PostgreSQLKhông thực thi hạn chế kích thước trong mọi trường hợp.

8.15.2. Đầu vào giá trị tỷ lệ kèo bóng đá 88#

Để viết một giá trị tỷ lệ kèo bóng đá 88 dưới dạng hằng số theo nghĩa đen, đặt các giá trị phần tử trong niềng răng xoăn và tách chúng bằng dấu phẩy. .

'Val1 Delim Val2 Delim... '

WHEREDelimlà ký tự phân cách cho loại, như được ghi trong của nópg_typemục nhập. Trong số các loại dữ liệu tiêu chuẩn được cung cấp trongPostgreSQLdistribution, all use a comma (,), ngoại trừ loạiBoxsử dụng dấu chấm phẩy (;). MỗiVallà hằng số của loại phần tử tỷ lệ kèo bóng đá 88 hoặc subarray. Một ví dụ về hằng số tỷ lệ kèo bóng đá 88 là:

'1,2,3, 4,5,6, 7,8,9'

Hằng số này là một tỷ lệ kèo bóng đá 88 hai chiều, 3 x 3 bao gồm ba con số của số nguyên.

Để đặt phần tử của hằng số tỷ lệ kèo bóng đá 88 thành null, viếtnullcho giá trị phần tử. (Bất kỳ biến thể trường hợp nào trên hoặc dưới củanullsẽ làm.) Nếu bạn muốn có một giá trị chuỗi thực tếHồinull, bạn phải đặt dấu ngoặc kép xung quanh nó.

(Các loại hằng số tỷ lệ kèo bóng đá 88 này thực sự chỉ là một trường hợp đặc biệt của các hằng số loại chung được thảo luận trongPhần 4.1.2.7. Hằng số ban đầu được coi là một chuỗi và được chuyển đến thói quen chuyển đổi đầu vào tỷ lệ kèo bóng đá 88.

Bây giờ chúng ta có thể hiển thị một sốChènCâu lệnh:

Chèn vào sal_emp

Kết quả của hai lần chèn trước trông như thế này:

Chọn * từ sal_emp;

tỷ lệ kèo bóng đá 88 đa chiều phải có phạm vi phù hợp cho mỗi chiều. Một sự không phù hợp gây ra lỗi, ví dụ:

Chèn vào sal_emp

Thetỷ lệ kèo bóng đá 88constructor syntax can also be used:

Chèn vào sal_emp

Lưu ý rằng các phần tử tỷ lệ kèo bóng đá 88 là hằng số hoặc biểu thức SQL thông thường; Chẳng hạn, các chuỗi chữ được trích dẫn đơn, thay vì được trích dẫn gấp đôi vì chúng sẽ ở trong một tỷ lệ kèo bóng đá 88 theo nghĩa đen.tỷ lệ kèo bóng đá 88Cú pháp Constructor được thảo luận chi tiết hơn trongPhần 4.2.12.

8.15.3. Truy cập tỷ lệ kèo bóng đá 88#

Bây giờ, chúng ta có thể chạy một số truy vấn trên bảng. Đầu tiên, chúng tôi chỉ ra cách truy cập một phần tử duy nhất của một tỷ lệ kèo bóng đá 88.

Chọn tên từ SAL_EMP trong đó pay_by_quarter [1] < pay_by_quarter [2];

Số đăng ký tỷ lệ kèo bóng đá 88 được viết trong dấu ngoặc vuông. Theo mặc địnhPostgreSQLSử dụng quy ước đánh số một dựa trên cho các tỷ lệ kèo bóng đá 88, nghĩa là một tỷ lệ kèo bóng đá 88nCác phần tử bắt đầu bằngtỷ lệ kèo bóng đá 88 [1]và kết thúc bằngtỷ lệ kèo bóng đá 88 [n].

Truy vấn này lấy tiền lương quý thứ ba của tất cả nhân viên:

Chọn pay_by_quarter [3] từ sal_emp;

Chúng ta cũng có thể truy cập các lát hình chữ nhật tùy ý của một tỷ lệ kèo bóng đá 88 hoặc subarrays. Một lát tỷ lệ kèo bóng đá 88 được ký hiệu bằng cách viếtgiới hạn thấp hơn:giới hạn trêncho một hoặc nhiều kích thước tỷ lệ kèo bóng đá 88. Ví dụ: Truy vấn này lấy mục đầu tiên trong lịch trình của Bill trong hai ngày đầu tiên trong tuần:

Chọn Lịch trình [1: 2] [1: 1] từ SAL_EMP trong đó pay_by_quarter | = 'Bill';

Nếu bất kỳ kích thước nào được viết dưới dạng một lát cắt, tức là, chứa một dấu hai chấm, thì tất cả các chiều được coi là lát cắt. Bất kỳ kích thước nào chỉ có một số duy nhất (không có dấu hai chấm) được coi là từ 1 đến số được chỉ định.[2]được coi là[1: 2], như trong ví dụ này:

Chọn Lịch trình [1: 2] [2] từ SAL_EMP trong đó Tên = 'Bill';

20664_20766[1: 2] [1: 1], not[2] [1: 1].

It is possible to omit thegiới hạn thấp hơnvà/hoặcgiới hạn trêncủa một nhà xác định lát cắt; Giới hạn bị thiếu được thay thế bằng giới hạn dưới hoặc trên của các chỉ số của tỷ lệ kèo bóng đá 88.

Chọn lịch [: 2] [2:] từ sal_emp trong đó tên = 'Bill';

21441_21682Lịch trìnhHiện tại có kích thước[1: 3] [1: 2]Sau đó tham khảoLịch trình [3] [3]mang lại null. Tương tự, một tham chiếu tỷ lệ kèo bóng đá 88 với số lượng người đăng ký sai mang lại một null thay vì lỗi.

Một biểu thức lát tỷ lệ kèo bóng đá 88 tương tự mang lại NULL nếu chính tỷ lệ kèo bóng đá 88 hoặc bất kỳ biểu thức nào trong số các biểu thức phụ là null. Tuy nhiên, trong các trường hợp khác như chọn một lát tỷ lệ kèo bóng đá 88 hoàn toàn bên ngoài giới hạn tỷ lệ kèo bóng đá 88 hiện tại, một biểu thức lát cắt mang lại một tỷ lệ kèo bóng đá 88 trống (không chiều) thay vì null.

Kích thước hiện tại của bất kỳ giá trị tỷ lệ kèo bóng đá 88 nào cũng có thể được truy xuất vớimảng_dimsHàm:

chọn Array_DIMS (Lịch trình) từ Sal_emp trong đó Tên = 'Carol';

Array_DIMSSản xuất ATextKết quả, thuận tiện cho mọi người đọc nhưng có lẽ bất tiện cho các chương trình. Kích thước cũng có thể được truy xuất vớiArray_upperArray_Lower, trả về giới hạn trên và dưới của một kích thước tỷ lệ kèo bóng đá 88 được chỉ định, tương ứng:

chọn Array_UPPER (Lịch trình, 1) từ Sal_emp trong đó pay_by_quarter | = '';

Array_lengthSẽ trả về chiều dài của một kích thước tỷ lệ kèo bóng đá 88 được chỉ định:

23469_23592

CardinalityTrả về tổng số phần tử trong một tỷ lệ kèo bóng đá 88 trên tất cả các kích thước. Nó thực sự là số lượng hàng gọi đếnUnnestsẽ mang lại:

Chọn Cardinality (Lịch trình) từ SAL_EMP trong đó pay_by_quarter | = '';

8.15.4. Sửa đổi tỷ lệ kèo bóng đá 88#

Một giá trị tỷ lệ kèo bóng đá 88 có thể được thay thế hoàn toàn:

CẬP NHẬT SAL_EMP SET PAY_BY_QUARTER = '25000,25000,27000,27000'

hoặc sử dụngtỷ lệ kèo bóng đá 88Biểu thức cú pháp:

CẬP NHẬT SAL_EMP SET PAY_BY_QUARTER = tỷ lệ kèo bóng đá 88 [25000,25000,27000,27000]

Một tỷ lệ kèo bóng đá 88 cũng có thể được cập nhật tại một phần tử duy nhất:

Cập nhật SAL_EMP SET PAY_BY_QUARTER [4] = 15000

hoặc được cập nhật trong một lát:

CẬP NHẬT SAL_EMP SET PAY_BY_QUARTER [1: 2] = '27000,27000'

Cú pháp lát cắt có được bỏ quagiới hạn thấp hơnvà/hoặcgiới hạn trêncũng có thể được sử dụng, nhưng chỉ khi cập nhật giá trị tỷ lệ kèo bóng đá 88 không phải là null hoặc không chiều (nếu không, không có giới hạn đăng ký hiện có để thay thế).

Một giá trị tỷ lệ kèo bóng đá 88 được lưu trữ có thể được mở rộng bằng cách gán cho các phần tử chưa có. Bất kỳ vị trí nào giữa các yếu tố hiện tại và các yếu tố mới được chỉ định sẽ được lấp đầy bằng null.MyArrayHiện tại có 4 yếu tố, nó sẽ có sáu yếu tố sau khi cập nhật gán choMyArray [6];MyArray [5]sẽ chứa null. Hiện tại, việc mở rộng theo kiểu này chỉ được phép cho các tỷ lệ kèo bóng đá 88 một chiều, không phải tỷ lệ kèo bóng đá 88 đa chiều.

Bài tập được đăng ký cho phép tạo các tỷ lệ kèo bóng đá 88 không sử dụng các chỉ số một dựa trên. Ví dụ, người ta có thể gán choMyArray [-2: 7]Để tạo một tỷ lệ kèo bóng đá 88 có giá trị đăng ký từ -2 đến 7.

Giá trị tỷ lệ kèo bóng đá 88 mới cũng có thể được xây dựng bằng toán tử nối,||:

Chọn tỷ lệ kèo bóng đá 88 [1,2] || tỷ lệ kèo bóng đá 88 [3,4];

Toán tử nối cho phép một phần tử duy nhất được đẩy vào đầu hoặc cuối của tỷ lệ kèo bóng đá 88 một chiều. Nó cũng chấp nhận haiN-Dimensional tỷ lệ kèo bóng đá 88 hoặcn-Dimensional và ann+1-dimensional array.

Khi một phần tử được đẩy vào đầu hoặc đầu của tỷ lệ kèo bóng đá 88 một chiều, kết quả là một tỷ lệ kèo bóng đá 88 có cùng một chỉ số giới hạn dưới với toán hạng tỷ lệ kèo bóng đá 88. Ví dụ:

Chọn Array_DIMS (1 || '[0: 1] = 2,3' :: int []);

Khi hai tỷ lệ kèo bóng đá 88 có số lượng kích thước bằng nhau được nối, kết quả vẫn giữ được chỉ số giới hạn dưới của kích thước bên ngoài của toán hạng bên trái. Kết quả là một tỷ lệ kèo bóng đá 88 bao gồm mọi yếu tố của toán hạng bên trái, theo sau là mọi yếu tố của toán hạng bên phải.

chọn Array_DIMS (tỷ lệ kèo bóng đá 88 [1,2] || tỷ lệ kèo bóng đá 88 [3,4,5]);

Khi mộtn-Dimensional tỷ lệ kèo bóng đá 88 được đẩy vào đầu hoặc cuối củan+1-dimensional array, the result is analogous to the element-array case above. Mỗin28047_28105n+1kích thước bên ngoài của tỷ lệ kèo bóng đá 88 -dimensional. Ví dụ:

chọn Array_DIMS (tỷ lệ kèo bóng đá 88 [1,2] || tỷ lệ kèo bóng đá 88 [[3,4], [5,6]]);

Một tỷ lệ kèo bóng đá 88 cũng có thể được xây dựng bằng cách sử dụng các chức năngArray_Prepend, Array_Appendhoặcmảng_cat. Hai đầu tiên chỉ hỗ trợ các tỷ lệ kèo bóng đá 88 một chiều, nhưngmảng_catHỗ trợ các tỷ lệ kèo bóng đá 88 đa chiều. Một số ví dụ:

chọn Array_Prepend (1, tỷ lệ kèo bóng đá 88 [2,3]);

Trong các trường hợp đơn giản, toán tử nối được thảo luận ở trên được ưu tiên sử dụng trực tiếp các chức năng này. Tuy nhiên, vì toán tử kết hợp bị quá tải để phục vụ cả ba trường hợp, nên có những tình huống sử dụng một trong các chức năng là hữu ích để tránh sự mơ hồ.

Chọn Array [1, 2] || '3, 4';

Trong các ví dụ trên, trình phân tích cú pháp nhìn thấy một tỷ lệ kèo bóng đá 88 số nguyên ở một bên của toán tử nối và một loại không thể xác định ở bên kia. Heuristic mà nó sử dụng để giải quyết loại của hằng số là giả sử nó cùng loại với đầu vào khác của người vận hành - trong trường hợp này là tỷ lệ kèo bóng đá 88 số nguyên.mảng_cat, khôngArray_Append. Khi đó là lựa chọn sai, nó có thể được sửa bằng cách đúc hằng số vào loại phần tử của tỷ lệ kèo bóng đá 88;Array_Appendcó thể là một giải pháp thích hợp hơn.

8.15.5. Searching in Arrays#

Để tìm kiếm giá trị trong một tỷ lệ kèo bóng đá 88, mỗi giá trị phải được kiểm tra. Điều này có thể được thực hiện thủ công, nếu bạn biết kích thước của tỷ lệ kèo bóng đá 88.

Chọn * từ SAL_EMP WHERE PAY_BY_QUARTER [1] = 10000 hoặc

Tuy nhiên, điều này nhanh chóng trở nên tẻ nhạt đối với các tỷ lệ kèo bóng đá 88 lớn và không hữu ích nếu kích thước của tỷ lệ kèo bóng đá 88 không rõ. Một phương pháp thay thế được mô tả trongPhần 9.24. Truy vấn trên có thể được thay thế bằng:

Chọn * từ SAL_EMP WHERE 10000 = Any (pay_by_quarter);

Ngoài ra, bạn có thể tìm thấy các hàng trong đó tỷ lệ kèo bóng đá 88 có tất cả các giá trị bằng 10000 với:

Chọn * từ SAL_EMP WHERE 10000 = all (pay_by_quarter);

Ngoài ra,generate_subscriptscó thể sử dụng chức năng. Ví dụ:

Chọn * Từ

Hàm này được mô tả trongBảng 9,66.

You can also search an array using the&&toán tử, kiểm tra xem toán hạng bên trái có chồng chéo với toán hạng bên phải hay không. Ví dụ:

Chọn * từ SAL_EMP trong đó pay_by_quarter && tỷ lệ kèo bóng đá 88 [10000];

Các toán tử tỷ lệ kèo bóng đá 88 này và khác được mô tả thêm trongPostgresql: Tài. Nó có thể được tăng tốc bởi một chỉ mục thích hợp, như được mô tả trongPhần 11.2.

Bạn cũng có thể tìm kiếm các giá trị cụ thể trong một tỷ lệ kèo bóng đá 88 bằng cách sử dụngArray_PocationArray_Pocationschức năng. Trước đây trả về chỉ số của lần xuất hiện đầu tiên của một giá trị trong một tỷ lệ kèo bóng đá 88;

33529_33780

TIP

tỷ lệ kèo bóng đá 88 không phải là bộ; Tìm kiếm các yếu tố tỷ lệ kèo bóng đá 88 cụ thể có thể là một dấu hiệu của cơ sở dữ liệu sai lệch.

8.15.6. tỷ lệ kèo bóng đá 88 đầu vào và cú pháp đầu ra#

Biểu diễn văn bản bên ngoài của giá trị tỷ lệ kèo bóng đá 88 bao gồm các mục được giải thích theo các quy tắc chuyển đổi I/O cho loại phần tử của tỷ lệ kèo bóng đá 88, cộng với trang trí cho biết cấu trúc tỷ lệ kèo bóng đá 88. Trang trí bao gồm niềng răng xoăn () Xung quanh giá trị tỷ lệ kèo bóng đá 88 cộng với các ký tự phân cách giữa các mục liền kề. Ký tự phân định thường là dấu phẩy (,) Nhưng có thể là một cái gì đó khác: Nó được xác định bởitypdelimCài đặt cho loại phần tử của tỷ lệ kèo bóng đá 88. Trong số các loại dữ liệu tiêu chuẩn được cung cấp trongPOSTGRESQLPhân phối, tất cả đều sử dụng dấu phẩy, ngoại trừ loạiBox, sử dụng dấu chấm phẩy (;). Trong một tỷ lệ kèo bóng đá 88 đa chiều, mỗi thứ nguyên (hàng, mặt phẳng, khối lập phương, v.v.) có mức độ niềng răng riêng của riêng mình và các dấu phân cách phải được viết giữa các thực thể giằng xoăn liền kề của cùng cấp độ.

35500_35705null. Double quotes and backslashes embedded in element values will be backslash-escaped.

Theo mặc định, giá trị chỉ mục giới hạn dưới của kích thước của một tỷ lệ kèo bóng đá 88 được đặt thành một. Để biểu diễn các tỷ lệ kèo bóng đá 88 có giới hạn dưới khác, các phạm vi đăng ký tỷ lệ kèo bóng đá 88 có thể được chỉ định rõ ràng trước khi viết nội dung tỷ lệ kèo bóng đá 88.[]) around each array dimension's lower and upper bounds, with a colon (:) ký tự phân cách ở giữa. Trang trí kích thước tỷ lệ kèo bóng đá 88 được theo sau bởi một dấu bằng (=). Ví dụ:

Chọn F1 [1] [-2] [3] là E2, F1 [1] [-1] [5]

Thói quen đầu ra tỷ lệ kèo bóng đá 88 sẽ bao gồm các kích thước rõ ràng trong kết quả của nó chỉ khi có một hoặc nhiều giới hạn thấp hơn khác với một.

Nếu giá trị được viết cho một phần tử lànull(in any case variant), the element is taken to be NULL. Sự hiện diện của bất kỳ trích dẫn hoặc dấu gạch chéo ngược nào vô hiệu hóa điều này và cho phép giá trị chuỗi theo nghĩa đennullxôngsẽ được nhập. Ngoài ra, để tương thích ngược với phiên bản trước 8.2 củaPOSTGRESQL, Thearray_nullsconfiguration parameter can be turnedTẮTĐể đàn áp nhận dạngnullnhư một null.

Như được hiển thị trước đây, khi viết một giá trị tỷ lệ kèo bóng đá 88, bạn có thể sử dụng dấu ngoặc kép xung quanh bất kỳ phần tử tỷ lệ kèo bóng đá 88 riêng lẻ nào. Bạnphảido so if the element value would otherwise confuse the array-value parser. Ví dụ, các phần tử chứa niềng răng xoăn, dấu phẩy (hoặc ký tự phân cách của loại dữ liệu), trích dẫn kép, dấu gạch chéo ngược hoặc khoảng trắng dẫn đầu hoặc dấu vết phải được trích dẫn kép.nullmust be quoted, too. To put a double quote or backslash in a quoted array element value, precede it with a backslash.

Bạn có thể thêm khoảng trắng trước khi nẹp trái hoặc sau khi nẹp phải. Bạn cũng có thể thêm khoảng trắng trước hoặc sau bất kỳ chuỗi mục riêng lẻ nào.

TIP

Thetỷ lệ kèo bóng đá 88Cú pháp Constructor (xemPhần 4.2.12) thường dễ làm việc hơn so với cú pháp theo nghĩa chính của tỷ lệ kèo bóng đá 88 khi viết các giá trị tỷ lệ kèo bóng đá 88 trong các lệnh SQL. TRONGtỷ lệ kèo bóng đá 88, Các giá trị phần tử riêng lẻ được viết giống như cách chúng sẽ được viết khi không phải là thành viên của một tỷ lệ kèo bóng đá 88.

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ớpMẫu nàyĐể báo cáo vấn đề tài liệu.