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
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 tỷ lệ kèo bóng đá trực tuyến hôm nay phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

8.16. tỷ lệ kèo bóng đá trực tuyến hôm nay

Aloại tổng tỷ lệ kèo bóng đá trực tuyến hôm nayđại diện cho cấu trúc của một hàng hoặc bản ghi; Nó thực chất chỉ là một danh sách các tên trường và tỷ lệ kèo bóng đá trực tuyến hôm nay dữ liệu của chúng.PostgreSQLCho phép tỷ lệ kèo bóng đá trực tuyến hôm nay được sử dụng theo nhiều cách giống nhau mà các loại đơn giản có thể được sử dụng. Ví dụ: một cột của bảng có thể được khai báo là loại tổng hợp.

8.16.1. Khai báo tỷ lệ kèo bóng đá trực tuyến hôm nay

Đây là hai ví dụ đơn giản về việc xác định tỷ lệ kèo bóng đá trực tuyến hôm nay:

Tạo tỷ lệ kèo bóng đá trực tuyến hôm nay phức tạp như (
    r chính xác gấp đôi,
    Tôi gấp đôi độ chính xác
);

Tạo tỷ lệ kèo bóng đá trực tuyến hôm nay hàng tồn kho_item là (
    tên văn bản,
    Nhà cung cấp_id Số nguyên,
    Giá số
);

Cú pháp tương đương vớiTạo bảng, ngoại trừ chỉ có thể chỉ định tên và tỷ lệ kèo bóng đá trực tuyến hôm nay trường; Không có ràng buộc (chẳng hạn nhưkhông null) hiện có thể được bao gồm. Lưu ý rằngASTừ khóa là điều cần thiết; Không có nó, hệ thống sẽ nghĩ một tỷ lệ kèo bóng đá trực tuyến hôm nay khácTạo tỷ lệ kèo bóng đá trực tuyến hôm nayLệnh có nghĩa là và bạn sẽ nhận được lỗi cú pháp lẻ.

Đã xác định tỷ lệ kèo bóng đá trực tuyến hôm nay, chúng ta có thể sử dụng chúng để tạo bảng:

Tạo bảng on_hand (
    hàng tồn kho_item,
    Đếm số nguyên
);

Chèn vào tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị on_hand (hàng ('Dice mờ', 42, 1.99), 1000);

hoặc tỷ lệ kèo bóng đá trực tuyến hôm nay chức năng:

11243_11405

Bất cứ khi nào bạn tạo bảng, loại tổng tỷ lệ kèo bóng đá trực tuyến hôm nay cũng tự động được tạo, với cùng tên với bảng, để biểu thị loại hàng của bảng. Ví dụ, chúng tôi đã nói:

Tạo bảng kiểm kê_item (
    tên văn bản,
    Nhà cung cấp nhà cung cấp_id tỷ lệ kèo bóng đá trực tuyến hôm nay nhà cung cấp tài liệu tham khảo,
    Kiểm tra số giá (Giá 0)
);

Sau đó, cùng mộtInventory_ItemLoại tổng hợp được hiển thị ở trên sẽ ra đời như một sản phẩm phụ và có thể được sử dụng như trên. Tuy nhiên, lưu ý một hạn chế quan trọng của việc thực hiện hiện tại: vì không có ràng buộc nào được liên kết với loại tổng hợp, tỷ lệ kèo bóng đá trực tuyến hôm nay ràng buộc được hiển thị trong định nghĩa bảngKhông áp dụngvới các giá trị của loại tổng hợp bên ngoài bảng. (Một cách giải quyết một phần là sử dụng các loại miền làm thành viên của tỷ lệ kèo bóng đá trực tuyến hôm nay.)

8.16.2. Xây dựng tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị tổng hợp

Để viết một giá trị tổng hợp dưới dạng hằng số theo nghĩa đen, đặt tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị trường trong ngoặc đơn và tách chúng bằng dấu phẩy. Bạn có thể đặt dấu ngoặc kép xung quanh bất kỳ giá trị trường nào và phải làm như vậy nếu nó chứa dấu phẩy hoặc dấu ngoặc đơn. (Thông tin chi tiết xuất hiệnbên dưới.) Vì vậy, định dạng chung của hằng số tổng tỷ lệ kèo bóng đá trực tuyến hôm nay là như sau:

'(Val1 , Val2, ...) '

Một ví dụ là:

'("Xúc xắc mờ", 42,1,99)'

đó sẽ là giá trị tỷ lệ kèo bóng đá trực tuyến hôm nay lệ củaInventory_Itemtỷ lệ kèo bóng đá trực tuyến hôm nay được xác định ở trên. Để làm cho một trường được null, hãy viết không có ký tự ở vị trí của nó trong danh sách. Ví dụ: hằng số này chỉ định trường thứ ba null:

'("Xúc xắc mờ", 42,)'

Nếu bạn muốn một chuỗi trống thay vì null, hãy viết dấu ngoặc kép:

'("", 42,)'

13410_13479

(Những hằng số này thực sự chỉ là một trường hợp đặc biệt của tỷ lệ kèo bóng đá trực tuyến hôm nay 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 truyền đến thói quen chuyển đổi đầu vào loại tổng tỷ lệ kèo bóng đá trực tuyến hôm nay. Một đặc điểm kỹ thuật loại rõ ràng có thể cần thiết để cho biết loại nào để chuyển đổi hằng số thành.)

Thehàng13904_14152

hàng ('Dice mờ', 42, 1.99)
Hàng ('', 42, null)

Từ khóa hàng thực sự là tùy chọn miễn là bạn có nhiều hơn một trường trong biểu thức, vì vậy chúng có thể được đơn giản hóa thành:

('Xúc xắc mờ', 42, 1.99)
('', 42, null)

ThehàngBiểu thức cú pháp được thảo luận chi tiết hơn trongPhần 4.2.13.

8.16.3. Truy cập tỷ lệ kèo bóng đá trực tuyến hôm nay

Để truy cập một trường của cột tổng tỷ lệ kèo bóng đá trực tuyến hôm nay, người ta viết một dấu chấm và tên trường, giống như chọn một trường từ tên bảng. Trên thực tế, nó rất giống với việc chọn từ một tên bảng mà bạn thường phải sử dụng dấu ngoặc đơn để không làm nhầm lẫn trình phân tích cú pháp. Ví dụ: bạn có thể cố gắng chọn một số trường con từ của chúng tôion_handBảng ví dụ với một cái gì đó như:

chọn item.name từ on_hand wher item.price 9,99;

Điều này sẽ không hoạt động vì tênMụcđược coi là tên bảng, không phải tên cột củaon_hand, theo quy tắc cú pháp SQL. Bạn phải viết nó như thế này:

Chọn (mục) .Name từ on_hand WHERE (Mục) .Price 9,99;

Hoặc nếu bạn cũng cần sử dụng tên bảng (ví dụ như trong một truy vấn đa thể), như thế này:

Chọn (on_hand.item) .Name từ on_hand ở đâu (on_hand.item).

Bây giờ đối tượng được giải thích chính xác là tham chiếu đếnMụcCột, và sau đó trường con có thể được chọn từ nó.

tỷ lệ kèo bóng đá trực tuyến hôm nay vấn đề cú pháp tương tự được áp dụng bất cứ khi nào bạn chọn một trường từ giá trị tổng hợp. Chẳng hạn, để chọn chỉ một trường từ kết quả của hàm trả về giá trị tổng hợp, bạn cần phải viết một cái gì đó như:

Chọn (my_func (...)). Trường từ ...

Không có dấu ngoặc đơn, điều này sẽ tạo ra lỗi cú pháp.

Tên trường đặc biệt*có nghĩa là"Tất cả tỷ lệ kèo bóng đá trực tuyến hôm nay trường", như được giải thích thêm trongPhần 8.16.5.

8.16.4. Sửa đổi tỷ lệ kèo bóng đá trực tuyến hôm nay

Dưới đây là một số ví dụ về cú pháp thích hợp để chèn và cập nhật tỷ lệ kèo bóng đá trực tuyến hôm nay cột tổng hợp. Đầu tiên, chèn hoặc cập nhật toàn bộ cột:

Chèn vào tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị MyTab (Complex_col) ((1.1,2.2));

Cập nhật MyTab Set Complex_col = Row (1.1,2.2) trong đó ...;

Ví dụ đầu tiên bỏ quahàng, lần thứ hai sử dụng nó; chúng ta có thể đã làm điều đó theo bất kỳ cách nào.

Chúng ta có thể cập nhật một trường con riêng lẻ của cột tổng tỷ lệ kèo bóng đá trực tuyến hôm nay:

Cập nhật myTab set comple

Lưu ý ở đây rằng chúng ta không cần (và thực sự không thể) đặt dấu ngoặc đơn xung quanh tên cột xuất hiện ngay sauset, nhưng chúng ta cần dấu ngoặc đơn khi tham chiếu cùng một cột trong biểu thức ở bên phải của dấu bằng.

Và chúng ta có thể chỉ định tỷ lệ kèo bóng đá trực tuyến hôm nay trường con là mục tiêu cho​​Chèn, quá:

Chèn vào tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị MyTab (Complex_col.r, Complex_col.i) (1.1, 2.2);

Nếu chúng tôi không cung cấp tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị cho tất cả tỷ lệ kèo bóng đá trực tuyến hôm nay trường con của cột, tỷ lệ kèo bóng đá trực tuyến hôm nay trường con còn lại sẽ được lấp đầy bằng tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị null.

8.16.5. Sử dụng tỷ lệ kèo bóng đá trực tuyến hôm nay trong truy vấn

Có nhiều quy tắc và hành vi cú pháp đặc biệt khác nhau liên quan đến tỷ lệ kèo bóng đá trực tuyến hôm nay trong các truy vấn. Các quy tắc này cung cấp các phím tắt hữu ích, nhưng có thể gây nhầm lẫn nếu bạn không biết logic đằng sau chúng.

inPostgreSQL, Một tham chiếu đến tên bảng (hoặc bí danh) trong một truy vấn thực sự là một tham chiếu đến giá trị tổng tỷ lệ kèo bóng đá trực tuyến hôm nay của hàng hiện tại của bảng. Ví dụ: nếu chúng ta có một bảngInventory_Itemnhư được hiển thịở trên, chúng ta có thể viết:

18452_18485

Truy vấn này tạo ra một cột có giá trị tổng tỷ lệ kèo bóng đá trực tuyến hôm nay duy nhất, vì vậy chúng tôi có thể nhận được đầu ra như:

18608_18679

Tuy nhiên, lưu ý rằng tỷ lệ kèo bóng đá trực tuyến hôm nay tên đơn giản được khớp với tên cột trước tên bảng, vì vậy ví dụ này chỉ hoạt động vì không có cột có tênCTrong bảng của truy vấn.

Cú pháp tên tiêu chuẩn thông thườngTable_Name.Cột_namecó thể được hiểu là áp dụngLựa chọn trườngvới giá trị tổng tỷ lệ kèo bóng đá trực tuyến hôm nay của hàng hiện tại của bảng. (Vì lý do hiệu quả, nó không thực sự được thực hiện theo cách đó.)

Khi chúng ta viết

Chọn C.* Từ Inventory_Item C;

Sau đó, theo tiêu chuẩn SQL, chúng ta nên lấy nội dung của bảng được mở rộng thành tỷ lệ kèo bóng đá trực tuyến hôm nay cột riêng biệt:

Tên | Nhà cung cấp_id | giá 
------------+-------------+-------
 Xúc xắc mờ |          42 |  1,99
(1 hàng)

như thể truy vấn là

Chọn C.Name, C.Supplier_id, C.Price từ Inventory_Item C;

PostgreSQLsẽ áp dụng hành vi mở rộng này cho bất kỳ biểu thức có giá trị tổng tỷ lệ kèo bóng đá trực tuyến hôm nay nào, mặc dù như được hiển thịở trên, bạn cần viết dấu ngoặc đơn xung quanh giá trị.*được áp dụng cho bất cứ khi nào nó không phải là một tên bảng đơn giản. Ví dụ: nếumyfunc ()là một hàm trả về loại tổng hợp với tỷ lệ kèo bóng đá trực tuyến hôm nay cộtA, BC, thì hai truy vấn này có cùng kết quả:

Chọn (myfunc (x)).* Từ một số_table;
Chọn (myfunc (x)). A, (myfunc (x)). B, (myfunc (x)).

Tip: PostgreSQL20554_20660myfunc ()sẽ được gọi ba lần mỗi hàng với cú pháp. Nếu đó là một chức năng đắt tiền, bạn có thể muốn tránh điều đó, điều mà bạn có thể làm với một truy vấn như:

Chọn (m).

TheOffset 0mệnh đề giữ cho trình tối ưu hóa từ"Flattening"Sub-chọn để đến biểu mẫu với nhiều cuộc gọi củamyfunc ().

Thecomposite_value.*Kết quả cú pháp trong việc mở rộng cột của tỷ lệ kèo bóng đá trực tuyến hôm nay này khi nó xuất hiện ở cấp cao nhất của AChọnDanh sách đầu ra, ATrở vềDanh sáchinChèn/Cập nhật/Xóa, AGiá trịmệnh đềhoặc ATrình xây dựng hàng21783_21875.*thành giá trị tổng tỷ lệ kèo bóng đá trực tuyến hôm nay không thay đổi giá trị, vì nó có nghĩa là"Tất cả tỷ lệ kèo bóng đá trực tuyến hôm nay cột"Và do đó, giá trị tổng tỷ lệ kèo bóng đá trực tuyến hôm nay tương tự được tạo lại. Ví dụ: nếuSOMEFUNC ()Chấp nhận đối số có giá trị tổng hợp, tỷ lệ kèo bóng đá trực tuyến hôm nay truy vấn này giống nhau:

Chọn một sốFunc (c.*) Từ incent_item c;
Chọn một sốFunc (c) từ incentory_item c;

Trong cả hai trường tỷ lệ kèo bóng đá trực tuyến hôm nay, hàng hiện tại củaInventory_Itemđược chuyển đến hàm như một đối số có giá trị tổng tỷ lệ kèo bóng đá trực tuyến hôm nay duy nhất. Mặc dù.*Không làm gì trong những trường tỷ lệ kèo bóng đá trực tuyến hôm nay như vậy, sử dụng nó là phong cách tốt, vì nó cho thấy rõ rằng giá trị tổng tỷ lệ kèo bóng đá trực tuyến hôm nay được dự định. Cụ thể, trình phân tích cú pháp sẽ xem xétCinc.*để chỉ tên bảng hoặc bí danh, không phải tên cột, do đó không có sự mơ hồ; vì không có.*22826_22854CCó nghĩa là tên bảng hoặc tên cột và trên thực tế, việc diễn giải tên cột sẽ được ưu tiên nếu có một cột có tênC.

23039_23132

Chọn * từ Inventory_Item C Order của C;
Chọn * từ Inventory_Item C đặt hàng theo c. *;
Chọn * từ incentory_item c đơn hàng theo hàng (c. *);

Tất cả những điều nàyĐặt hàng bởitỷ lệ kèo bóng đá trực tuyến hôm nay điều khoản Chỉ định giá trị tổng hợp của hàng, dẫn đến việc sắp xếp tỷ lệ kèo bóng đá trực tuyến hôm nay hàng theo tỷ lệ kèo bóng đá trực tuyến hôm nay quy tắc được mô tả trongPhần 9.23.6. Tuy nhiên, nếuInventory_Itemchứa một cột có tênC, trường hợp đầu tiên sẽ khác với tỷ lệ kèo bóng đá trực tuyến hôm nay trường hợp khác, vì nó chỉ có nghĩa là sắp xếp theo cột đó. Cho tỷ lệ kèo bóng đá trực tuyến hôm nay tên cột được hiển thị trước đó, tỷ lệ kèo bóng đá trực tuyến hôm nay truy vấn này cũng tương đương với tỷ lệ kèo bóng đá trực tuyến hôm nay truy vấn trên:

23881_24033

(Trường tỷ lệ kèo bóng đá trực tuyến hôm nay cuối cùng sử dụng hàm tạo hàng với từ khóahàngbỏ qua.)

Một hành vi cú pháp đặc biệt khác được liên kết với tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị tổng hợp là chúng ta có thể sử dụngKý hiệu chức năngĐể trích xuất một trường có giá trị tổng hợp. Cách đơn giản để giải thích điều này là tỷ lệ kèo bóng đá trực tuyến hôm nay ký hiệutrường(Bảng)Bảng.trường24581_24647

Chọn C.Name từ Inventory_Item C WHERE c.price 1000;
Chọn Tên (C) từ Inventory_Item C WHERE Giá (C) 1000;

24811_24967

Chọn một sốFunc (c) từ Inventory_Item C;
Chọn một số fromfunc (c.*) Từ incentory_item c;
Chọn C.SomeFunc từ Inventory_Item C;

Tương đương này giữa ký hiệu chức năng và ký hiệu trường cho phép sử dụng các chức năng trên tỷ lệ kèo bóng đá trực tuyến hôm nay để thực hiện"tỷ lệ kèo bóng đá trực tuyến hôm nay trường được tính toán". Một ứng dụng sử dụng truy vấn cuối cùng ở trên sẽ không cần phải biết trực tiếp rằngSomerfunckhông phải là một cột thực của bảng.

Tip:Vì hành vi này, không khôn ngoan khi đưa ra một hàm có một đối số loại tổng tỷ lệ kèo bóng đá trực tuyến hôm nay duy nhất tên giống như bất kỳ trường nào thuộc loại tổng tỷ lệ kèo bóng đá trực tuyến hôm nay đó. Nếu có sự mơ hồ, việc giải thích tên hiện trường sẽ được ưu tiên, do đó, một chức năng như vậy không thể được gọi mà không có thủ thuật. Một cách để buộc giải thích chức năng là trình độ Schema-đủ điều kiện, nghĩa là viếtlược đồ.func(compositeValue).

8.16.6. Loại tổng tỷ lệ kèo bóng đá trực tuyến hôm nay đầ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ổng hợp bao gồm các mục được giải thích theo các quy tắc chuyển đổi I/O cho tỷ lệ kèo bóng đá trực tuyến hôm nay trường riêng lẻ, cộng với trang trí cho biết cấu trúc tổng hợp. Trang trí bao gồm dấu ngoặc đơn (()) xung quanh toàn bộ giá trị, cộng với dấu phẩy (,) giữa tỷ lệ kèo bóng đá trực tuyến hôm nay mục liền kề. Khoảng trắng bên ngoài dấu ngoặc đơn bị bỏ qua, nhưng trong tỷ lệ kèo bóng đá trực tuyến hôm nay dấu ngoặc đơn, nó được coi là một phần của giá trị trường và có thể hoặc không đáng kể tùy thuộc vào quy tắc chuyển đổi đầu vào cho kiểu dữ liệu trường. Ví dụ: trong:

'(42)'

khoảng trắng sẽ bị bỏ qua nếu tỷ lệ kèo bóng đá trực tuyến hôm nay trường là số nguyên, nhưng không phải nếu đó là văn bản.

Như được hiển thị trước đây, khi viết một giá trị tổng tỷ lệ kèo bóng đá trực tuyến hôm nay, bạn có thể viết trích dẫn kép xung quanh bất kỳ giá trị trường riêng lẻ nào. Bạnphải27196_27809

Giá trị trường hoàn toàn trống (không có ký tự nào giữa dấu phẩy hoặc dấu ngoặc đơn) đại diện cho một null. Để viết một giá trị là một chuỗi trống chứ không phải null, hãy viết"".

Thói quen đầu ra tổng hợp sẽ đặt tỷ lệ kèo bóng đá trực tuyến hôm nay báo giá kép xung quanh tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị trường nếu chúng là tỷ lệ kèo bóng đá trực tuyến hôm nay chuỗi trống hoặc chứa dấu ngoặc đơn, dấu phẩy, dấu ngoặc kép, dấu gạch chéo ngược hoặc không gian trắng. .

Lưu ý:Hãy nhớ rằng những gì bạn viết trong lệnh SQL trước tiên sẽ được hiểu là một chuỗi theo nghĩa đen, và sau đó là một tổng tỷ lệ kèo bóng đá trực tuyến hôm nay. Điều này nhân đôi số lượng dấu trùng sinh bạn cần (giả sử cú pháp chuỗi thoát được sử dụng). Ví dụ: để chèn aTextTrường chứa báo giá kép và dấu gạch chéo ngược với giá trị tổng tỷ lệ kèo bóng đá trực tuyến hôm nay, bạn cần phải viết:

Chèn ... Giá trị ('("\" \ ")');

Bộ xử lý theo yêu cầu chuỗi loại bỏ một mức độ ngược, để những gì đến trình phân tích cú pháp giá trị tổng tỷ lệ kèo bóng đá trực tuyến hôm nay trông giống như("\" \ "). Lần lượt, chuỗi được đưa vàoTextthói quen đầu vào của tỷ lệ kèo bóng đá trực tuyến hôm nay dữ liệu trở thành"\. .byteaVí dụ: chúng ta có thể cần có tới tám dấu gạch chéo ngược trong lệnh để đưa một dấu gạch chéo ngược vào trường tổng tỷ lệ kèo bóng đá trực tuyến hôm nay được lưu trữ.)Phần 4.1.2.4) có thể được sử dụng để tránh sự cần thiết phải tăng gấp đôi dấu gạch chéo ngược.

Tip:ThehàngCú pháp Constructor thường dễ hoạt động hơn so với cú pháp theo nghĩa tổng hợp khi viết tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị tổng hợp trong tỷ lệ kèo bóng đá trực tuyến hôm nay lệnh SQL. TRONGhàng, tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị trường riêng lẻ được viết giống như cách chúng được viết khi không phải là thành viên của tổng hợp.