Postgresql 9.0.23 Tài liệu | ||||
---|---|---|---|---|
prev | UP | Chương 4. SQL | Tiếp theo |
tỷ lệ kèo bóng đá tối nay giá trị được sử dụng trong nhiều bối cảnh khác nhau, chẳng hạn nhưChọnlệnh, như các giá trị cột mới trongChènhoặcCập nhậthoặc trong các điều kiện tìm kiếm trong avô hướng, để phân biệt nó vớivô hướng(hoặc thậm chí đơn giản làtỷ lệ kèo bóng đá tối nay). Cú pháp tỷ lệ kèo bóng đá tối nay cho phép
tỷ lệ kèo bóng đá tối nay giá trị là một trong những điều sau đây:
tỷ lệ kèo bóng đá tối nay giá trị không đổi hoặc nghĩa đen
tham chiếu cột
Tham chiếu tham số vị trí, trong phần thân của A
tỷ lệ kèo bóng đá tối nay được đăng ký
tỷ lệ kèo bóng đá tối nay lựa chọn trường
tỷ lệ kèo bóng đá tối nay lời mời người vận hành
tỷ lệ kèo bóng đá tối nay chức năng gọi
Một tỷ lệ kèo bóng đá tối nay tổng hợp
tỷ lệ kèo bóng đá tối nay chức năng cửa sổ gọi
tỷ lệ kèo bóng đá tối nay loại đúc
12252_12271
Trình xây dựng mảng
Trình xây dựng hàng
Một tỷ lệ kèo bóng đá tối nay giá trị khác trong ngoặc đơn (được sử dụng để nhóm
Ngoài danh sách này, còn có tỷ lệ kèo bóng đá tối nay số cấu trúcChương 9. tỷ lệ kèo bóng đá tối nay ví dụ làlà nullmệnh đề.
Chúng ta đã thảo luận về hằng số trongPhần 4.1.2.
tỷ lệ kèo bóng đá tối nay cột có thể được tham chiếu ở dạng:
Tương quan.CộtName
Tương quanlà tên của tỷ lệ kèo bóng đá tối naytừmệnh đề. Tên tương quan và dấu chấm tách có thể được bỏ quaChương.)
Tham chiếu tham số vị trí được sử dụng để chỉ ra giá trị
$Số
Ví dụ: xem xét định nghĩa của tỷ lệ kèo bóng đá tối nay hàm,Dept
, như:
Tạo chức năng (văn bản) trả về Dept
ở đây$ 1Tài liệu tham khảo giá trị của
Nếu tỷ lệ kèo bóng đá tối nay mang lại giá trị của loại mảng, thì a
tỷ lệ kèo bóng đá tối nay[Đăng ký]
hoặc nhiều phần tử liền kề (AN"Mảng) có thể được trích xuất bằng cách viết
tỷ lệ kèo bóng đá tối nay[Lower_SubScript:Upper_subscript]
(ở đây, dấu ngoặc[]có nghĩa làĐăng kýbản thân nó là một tỷ lệ kèo bóng đá tối nay, mà
Nói chung là mảngtỷ lệ kèo bóng đá tối nayphải được đặt dấu ngoặc đơn, nhưng
MyTable.ArrayColumn [4]
dấu ngoặc đơn trong ví dụ cuối cùng được yêu cầu. Nhìn thấyPhần 8.14Để biết thêm về
Nếu tỷ lệ kèo bóng đá tối nay mang lại giá trị của loại tổng hợp (hàng
tỷ lệ kèo bóng đá tối nay.FieldName
16710_16731tỷ lệ kèo bóng đá tối nayphải được đặt dấu ngoặc đơn, nhưng
mytable.mycolumn
(do đó, tham chiếu cột đủ điều kiện thực sự chỉ là tỷ lệ kèo bóng đá tối nay
(Compositecol) .Somefield
dấu ngoặc đơn được yêu cầu ở đây để chỉ ra rằngCompositecollà tên cột không phải là tỷ lệ kèo bóng đá tối nay bảngMyTablelà tỷ lệ kèo bóng đá tối nay bảng
Có ba cú pháp có thể cho người vận hành
tỷ lệ kèo bóng đá tối nay Nhà điều hành tỷ lệ kèo bóng đá tối nay(nhị phân nhị phân |
Nhà điều hành tỷ lệ kèo bóng đá tối nay(Tiền tố Unary |
tỷ lệ kèo bóng đá tối nay Nhà điều hành(Unary Postfix |
Nhà điều hành (lược đồ.operatorname)
Những người vận hành cụ thể tồn tại và liệu chúng có phải là UnaryChương 9Mô tả các toán tử tích hợp.
Cú pháp cho cuộc gọi chức năng là tên của tỷ lệ kèo bóng đá tối nay hàm
function_name([tỷ lệ kèo bóng đá tối nay[, tỷ lệ kèo bóng đá tối nay...]])
Ví dụ: sau đây tính toán căn bậc hai của
Sqrt (2)
Danh sách các chức năng tích hợp trongChương 9. Các chức năng khác có thể được thêm vào bởi
Các đối số có thể tùy chọn có tên được đính kèm. Nhìn thấyPhần 4.3cho
ANtỷ lệ kèo bóng đá tối nay tổng hợpđại diện
Tổng hợp_name(tỷ lệ kèo bóng đá tối nay[, ...] [order_by_clause])Tổng hợp_name(tất cảtỷ lệ kèo bóng đá tối nay[, ...] [order_by_clause])Tổng hợp_name(khác biệttỷ lệ kèo bóng đá tối nay[, ...] [order_by_clause])tổng hợp_name( *)
WHERETổng hợp_namelà aexpressionlà bất kỳ giá trị nàoorder_by_clauselà tỷ lệ kèo bóng đá tối nay tùy chọnĐặt hàng bởimệnh đề như mô tả bên dưới.
Hình thức đầu tiên của tỷ lệ kèo bóng đá tối nay tổng hợp gọi tổng hợptất cảlà mặc định. CácCount (*)
Hàm tổng hợp.
hầu hết các hàm tổng hợp bỏ qua các đầu vào null, sao cho các hàng trong
Ví dụ,Count (*)mang lạiCount (F1)mang lại số lượng hàng đầu vào trong đóF1không phải là null, vìĐếm
bỏ qua nulls; VàCount (khác biệt f1)mang lại số lượng khác biệtF1.
Thông thường, các hàng đầu vào được đưa vào hàm tổng hợpmin
Sản xuấtmảng_agg
vàString_agg
) tạo ra kết quả phụ thuộc vàoorder_by_clausecó thể được sử dụng để chỉ định thứ tự mong muốn. Theorder_by_clausecó cùng cú pháp nhưĐặt hàng bởimệnh đề, nhưPhần 7.5,,
chọn Array_agg (tỷ lệ kèo bóng đá tối nay đơn đặt hàng của B Desc) từ bảng;
Khi xử lý các chức năng tổng hợp đa đối số,Đặt hàng bởimệnh đề đi
Chọn String_agg (a, ',' thứ tự bằng a) từ bảng;
không phải thế này:
Chọn String_agg (tỷ lệ kèo bóng đá tối nay thứ tự bằng a, ',') từ bảng; -- không đúng
cái sau có hiệu lực về mặt cú pháp, nhưng nó đại diện cho tỷ lệ kèo bóng đá tối nay cuộc gọiĐặt hàng bởiKeys (cái thứ hai là thay vì
nếukhác biệtđược chỉ định trongorder_by_clause,,Đặt hàng bởitỷ lệ kèo bóng đá tối nay phảikhác biệtDanh sách.
Lưu ý:Khả năng chỉ định cả haikhác biệtvàThứ tựTrong tỷ lệ kèo bóng đá tối nay hàm tổng hợp làPostgreSQLphần mở rộng.
Các hàm tổng hợp được xác định trước được mô tả trongPhần 9,18. Tổng hợp khác
tỷ lệ kèo bóng đá tối nay tổng hợp chỉ có thể xuất hiện trong danh sách kết quảcómệnh đề AChọnLệnh. Nó bị cấm trong những người khácWHERE, bởi vì những người đó
Khi tỷ lệ kèo bóng đá tối nay tổng hợp xuất hiện trong một trình điều khiển con (xemPhầnvàPhần), tổng hợp thường được đánh giá trên các hàng củacóĐiều khoản áp dụng với
AGọi chức năng cửa sổđại diệnPhân vùng bởiLiệt kê) cuộc gọi chức năng cửa sổ.
function_name([tỷ lệ kèo bóng đá tối nay[, expression...]]) trênwindow_name function_name([tỷ lệ kèo bóng đá tối nay[, tỷ lệ kèo bóng đá tối nay...]]) Over (window_definition)function_name( *) trênwindow_name function_name( *) Over (window_definition)
WHEREwindow_definitioncó
[hiện tại_window_name]tỷ lệ kèo bóng đá tối nay[, ...]]tỷ lệ kèo bóng đá tối nay[ASC | Desc |Nhà điều hành] [NULLS Đầu tiên | CUỐI CÙNG ] [, ...] ]frame_clause]
và tùy chọnframe_clausecó thể là tỷ lệ kèo bóng đá tối nay trong những
phạm vi | Hàngframe_startphạm vi | Hàng giữaframe_startvàframe_end
WHEREframe_startvàframe_endcó thể là tỷ lệ kèo bóng đá tối nay trong
Không bị ràng buộc trướcgiá trịtrướcgiá trịsau đây
ở đây,tỷ lệ kèo bóng đá tối nayđại diệnPhân vùng bởivàĐặt hàng bởiDanh sách về cơ bản cóNhóm bởivàĐặt hàng bởiĐiều khoản của toàn bộwindow_namelà tham chiếu đến AWindowmệnh đề. Ngoài ra, đầy đủwindow_definitioncó thể được đưa ra trongWindowmệnh đề; XemChọnTrang tham chiếu choOverkhông chính xác tương đương vớiOver (wname); cái sau ngụ ý sao chép và
Theframe_clauseChỉ địnhCửa sổ, Đối với các chức năng cửa sổ hoạt động trên khungframe_endbị bỏ qua nó mặc định làhàng hiện tại. Hạn chế làframe_startkhông thểkhông bị ràng buộc sau, frame_endkhông thểkhông bị ràng buộc trướcvàframe_endSự lựa chọn không thể xuất hiện sớm hơn trongframe_startLựa chọn - ví dụPhạm vi giữa hàng hiện tại vàgiá trịtrướckhông được phép. CácPhạm vi không bị ràng buộc, giống nhưPhạm vi; Nó đặtThứ tựĐặt hàng (có nghĩa là tất cả các hàng nếu không cóĐặt hàng bởi). Nói chung,không bị ràng buộc trướccó nghĩa là khung bắt đầuKhông giới hạn saucó nghĩa là khung kết thúcphạm vihoặchàngchế độ). TRONGhàngMode,hiện tạicó nghĩa là khung bắt đầu hoặc kết thúc bằng dòng điệnphạm viChế độ có nghĩa làĐặt hàng bởiĐặt hàng. Thegiá trị trướcvàgiá trị sauCác trường hợp hiện chỉ được phép tronghàngchế độ. Họ chỉ ra rằng khung bắt đầugiá trịPhải là tỷ lệ kèo bóng đá tối nay số nguyên
Các chức năng cửa sổ tích hợp được mô tả trongBảng 9-45.
Cú pháp bằng cách sử dụng*được sử dụng choCount (*) Over (phân vùng bởi x. *thông thường khôngkhác biệthoặcThứ tựĐược sử dụng trong danh sách đối số chức năng.
Các cuộc gọi chức năng cửa sổ chỉ được phép trongChọnDanh sách vàThứ tựmệnh đề của truy vấn.
Thông tin thêm về các chức năng cửa sổ có thể được tìm thấy trongPhần 3.5, Phần 9.19, Phần.
tỷ lệ kèo bóng đá tối nay loại đúc chỉ định chuyển đổi từ tỷ lệ kèo bóng đá tối nay loại dữ liệu thànhPOSTGRESQLChấp nhận
cast (tỷ lệ kèo bóng đá tối nayASloại)tỷ lệ kèo bóng đá tối nay::loại
TheCastCú pháp phù hợp với SQL;::là lịch sửPOSTGRESQLsử dụng.
Khi một diễn viên được áp dụng cho tỷ lệ kèo bóng đá tối nay giá trị của mộtPhần. tỷ lệ kèo bóng đá tối nay diễn viên được áp dụng cho tỷ lệ kèo bóng đá tối nay chuỗi không được trang trí theo nghĩa đen
tỷ lệ kèo bóng đá tối nay loại diễn viên rõ ràng thường có thể được bỏ qua nếu không có"OK để áp dụng ngầm"in
cũng có thể chỉ định tỷ lệ kèo bóng đá tối nay loại đúc bằng cách sử dụng
typename(tỷ lệ kèo bóng đá tối nay)
Tuy nhiên, điều này chỉ hoạt động cho các loại có tên cũngDouble PrecisionKhông thể được sử dụng theo cách này, nhưngfloat8Có thể. Ngoài ra,Khoảng, Thời gianvàDấu thời giancó thể
Lưu ý:Cú pháp giống như chức năng trên thực tế chỉ là tỷ lệ kèo bóng đá tối nay"Cú pháp giống như chức năng"không gì khác hơnTạo Cast.
Subquary vô hướng là tỷ lệ kèo bóng đá tối nay thông thườngChọnTruy vấn trong ngoặc đơn trả về chính xácChươngĐể biết thông tin về các truy vấn viết.)ChọnTruy vấn được thực thi và phần trả lại đơn lẻPhần 9.20cho
Ví dụ: sau đây tìm thấy dân số thành phố lớn nhất
Chọn tên, (chọn tối đa (pop) từ các thành phố nơi các thành phố.state = states.name)
Trình xây dựng mảng là một tỷ lệ kèo bóng đá tối nay xây dựng một mảngmảng, khung vuông bên trái[, Danh sách các tỷ lệ kèo bóng đá tối nay (được phân tách bằng dấu phẩy)]. Ví dụ:
Chọn mảng [1,2,3+4];
Theo mặc định, loại phần tử mảng là loại phổ biến củaUnionhoặccaseCấu trúc (xemPhần). Bạn có thể ghi đè lên điều này bằng cách đúc tỷ lệ kèo bóng đá tối nay cách rõ ràng
Chọn mảng [1,2,22.7] :: Integer [];
Điều này có tác dụng tương tự như chuyển từng tỷ lệ kèo bóng đá tối nay choPhần.
Giá trị mảng đa chiều có thể được xây dựng bằng cách làm tổmảngcó thể được bỏ qua. Ví dụ,
chọn mảng [mảng [1,2], mảng [3,4]];
Vì các mảng đa chiều phải là hình chữ nhật, bên trongmảngConstructor tuyên truyền tự động đến
Các yếu tố xây dựng mảng đa chiều có thể là bất cứ điều gìmảngXây dựng. Ví dụ:
Tạo bảng ARR (f1 int [], f2 int []);
Bạn có thể xây dựng tỷ lệ kèo bóng đá tối nay mảng trống, nhưng vì không thể
chọn Array [] :: Integer [];
cũng có thể xây dựng tỷ lệ kèo bóng đá tối nay mảng từ kết quảmảngtheo sau là a
chọn mảng (chọn oid từ pg_proc trong đó đại từ như 'bytea%');
Trình điều khiển con phải trả về tỷ lệ kèo bóng đá tối nay cột duy nhất. Kết quả
Các chỉ số của tỷ lệ kèo bóng đá tối nay giá trị mảng được xây dựng vớimảngLuôn bắt đầu bằng tỷ lệ kèo bóng đá tối nay. Để biết thêmPhần.
Trình xây dựng hàng là một tỷ lệ kèo bóng đá tối nay xây dựng giá trị hànghàng, dấu ngoặc trái, không hoặc nhiều hơn
Chọn hàng (1,2,5, 'Đây là tỷ lệ kèo bóng đá tối nay bài kiểm tra');
Từ khóahànglà tùy chọn khi nào
Trình xây dựng hàng có thể bao gồm cú phápRowValue.*,,.*Cú pháp được sử dụng ở cấp cao nhất của AChọnDanh sách. Ví dụ: nếu bảngTCó cộtF1vàf2, những thứ này giống nhau:
Chọn hàng (t.*, 42) từ t;
Lưu ý:TrướcPOSTGRESQL8.2,.*Cú pháp không được mở rộng, để viếthàng (t.*, 42)Tạo hai trường.*, ví dụhàng (t, 42).
Theo mặc định, giá trị được tạo bởi Ahàngtỷ lệ kèo bóng đá tối nay thuộc loại bản ghi ẩn danh.Tạo loại dưới dạng. tỷ lệ kèo bóng đá tối nay diễn viên rõ ràng có thể
Tạo bảng mytable (f1 int, f2 float, văn bản F3);
Trình xây dựng hàng có thể được sử dụng để xây dựng các giá trị tổng hợplà nullhoặckhông, ví dụ:
Chọn hàng (1,2,5, 'Đây là tỷ lệ kèo bóng đá tối nay bài kiểm tra') = hàng (1, 3, 'không giống nhau');
Để biết thêm chi tiết, xemPhần 9,21. Người xây dựng hàngPhần 9.20.
Thứ tự đánh giá các tỷ lệ kèo bóng đá tối nay hiện phụ không được xác định. TRONG
Hơn nữa, nếu kết quả của một tỷ lệ kèo bóng đá tối nay có thể là
Chọn True hoặc SomethingFunc ();
sau đóSOMEFUNC ()sẽ (có thể)
Chọn Somoundunc () hoặc true;
Lưu ý rằng điều này không giống như từ trái sang phải"ngắn mạch"của Boolean
Do đó, việc sử dụng các chức năng với bên là không khôn ngoanWHEREvàcómệnh đề, vì các điều khoản đó làvà/hoặc/khôngKết hợp) trong các mệnh đề đó có thể
Khi nó cần thiết để buộc lệnh đánh giá, AcaseXây dựng (xemPhần 9.16) có thể được sử dụng. VìWHEREmệnh đề:
Chọn ... trong đó x 0 và y/x 1.5;
Nhưng điều này là an toàn:
Chọn ... Trường hợp trường hợp khi x 0 thì y/x 1.5 khác kết thúc sai;
AcaseXây dựng được sử dụng trong nàyyThay vào đó.)
casekhông phải là phương pháp chữa bệnh cho như vậyPhần 35.6, chức năng vàbất biếncó thể
Chọn trường hợp khi x 0 sau đó X khác 1/0 kết thúc từ tab;
có khả năng dẫn đến sự thất bại của từng bộ phận dox 0Vì vậykhácARM sẽ không bao giờ
Trong khi ví dụ cụ thể đó có vẻ ngớ ngẩn, có liên quanPL/PGSQLChức năng, ví dụ, sử dụngnếu-sau đó-khácCâu lệnh đếncasetỷ lệ kèo bóng đá tối nay.
giới hạn khác của cùng loại làcaseKhông thể ngăn chặn việc đánh giá tỷ lệ kèo bóng đá tối nay tổng hợpChọnDanh sách hoặccómệnh đề được xem xét. Ví dụ, truy vấn sau có thể
Chọn trường hợp khi tối thiểu (nhân viên) 0
Themin ()
vàavg ()
Tổng hợp được tính đồng thờinhân viênbằng không,min ()
. Thay vào đó, hãy sử dụngWHEREmệnh đề để ngăn chặn các hàng đầu vào có vấn đề