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
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ế.

22.2. Hỗ trợ đối tỷ lệ kèo bóng đá 88

Tính năng đối tỷ lệ kèo bóng đá 88 cho phép chỉ định hành vi phân loại ký tự và sắp xếp của dữ liệu trên mỗi cột hoặc thậm chí là hoạt động. Điều này làm giảm bớt hạn chế rằngLC_Collatelc_ctypeCài đặt của cơ sở dữ liệu không thể thay đổi sau khi tạo.

22.2.1. Các khái niệm

Về mặt khái niệm, mọi biểu thức của một loại dữ liệu có kết hợp đều có sự đối tỷ lệ kèo bóng đá 88. (Các kiểu dữ liệu có chứa có thể tích hợp làText, VarcharChar. Các loại cơ sở do người dùng xác định cũng có thể được đánh dấu có thể có được kết hợp, và tất nhiên một miền trên một loại dữ liệu có thể có được có thể có được.) Nếu biểu thức là một tham tỷ lệ kèo bóng đá 88 cột, sự hợp tác của biểu thức là sự đối tỷ lệ kèo bóng đá 88 được xác định của cột.

đối tỷ lệ kèo bóng đá 88 của biểu thức có thể là"Mặc định"đối tỷ lệ kèo bóng đá 88, có nghĩa là các cài đặt địa phương được xác định cho cơ sở dữ liệu. Cũng có thể đối tỷ lệ kèo bóng đá 88 của một biểu thức không được xác định.

Khi hệ thống cơ sở dữ liệu phải thực hiện đơn đặt hàng hoặc phân loại ký tự, nó sử dụng đối tỷ lệ kèo bóng đá 88 của biểu thức đầu vào. Điều này xảy ra, ví dụ, vớiĐặt hàng bởiCác mệnh đề và chức năng hoặc các cuộc gọi toán tử như<. Đối tỷ lệ kèo bóng đá 88 để áp dụng cho mộtĐặt hàng bởimệnh đề chỉ đơn giản là sự đối tỷ lệ kèo bóng đá 88 của phím sắp xếp. Việc đối tỷ lệ kèo bóng đá 88 để áp dụng cho một chức năng hoặc cuộc gọi toán tử được lấy từ các đối số, như được mô tả dưới đây.Hạ, trêninitCap; bằng cách kết hợp các toán tử phù hợp với mẫu;to_charvà các chức năng liên quan.

Đối với một cuộc gọi chức năng hoặc toán tử, đối tỷ lệ kèo bóng đá 88 có nguồn gốc bằng cách kiểm tra các đối số đối số được sử dụng tại thời gian chạy để thực hiện thao tác được chỉ định. Nếu kết quả của chức năng hoặc lệnh gọi toán tử là loại dữ liệu có thể kết hợp, thì đối tỷ lệ kèo bóng đá 88 cũng được sử dụng vào thời gian phân tích.

TheĐạo hàm đối tỷ lệ kèo bóng đá 88của một biểu thức có thể được ẩn hoặc rõ ràng. Sự khác biệt này ảnh hưởng đến cách các đối tỷ lệ kèo bóng đá 88 được kết hợp khi nhiều đối tỷ lệ kèo bóng đá 88 khác nhau xuất hiện trong một biểu thức.đối tỷ lệ kèo bóng đá 88mệnh đề được sử dụng; Tất cả các dẫn xuất đối tỷ lệ kèo bóng đá 88 khác là tiềm ẩn.

  1. Nếu bất kỳ biểu thức đầu vào nào có đạo hàm đối tỷ lệ kèo bóng đá 88 rõ ràng, thì tất cả các đối tỷ lệ kèo bóng đá 88 có nguồn gốc rõ ràng giữa các biểu thức đầu vào phải giống nhau, nếu không một lỗi được nêu ra. Nếu có bất kỳ đối tỷ lệ kèo bóng đá 88 có nguồn gốc rõ ràng có mặt, đó là kết quả của sự kết hợp đối tỷ lệ kèo bóng đá 88.

  2. Nếu không, tất cả các biểu thức đầu vào phải có cùng một đạo hàm đối tỷ lệ kèo bóng đá 88 ngầm hoặc đối tỷ lệ kèo bóng đá 88 mặc định. Nếu có bất kỳ đối tỷ lệ kèo bóng đá 88 không mặc định có mặt, đó là kết quả của sự kết hợp đối tỷ lệ kèo bóng đá 88.

  3. Nếu có các đối tỷ lệ kèo bóng đá 88 ngầm không mặc định xung đột giữa các biểu thức đầu vào, thì sự kết hợp được coi là có đối tỷ lệ kèo bóng đá 88 không xác định. Đây không phải là một điều kiện lỗi trừ khi chức năng cụ thể được gọi đòi hỏi kiến ​​thức về đối tỷ lệ kèo bóng đá 88 mà nó nên áp dụng.

Ví dụ, hãy xem xét định nghĩa bảng này:

Tạo bảng Test1 (

Sau đó trong

Chọn <'foo' từ Test1;

The<So sánh được thực hiện theode_deQuy tắc, bởi vì biểu thức kết hợp một đối tỷ lệ kèo bóng đá 88 có nguồn gốc ngầm với đối tỷ lệ kèo bóng đá 88 mặc định. Nhưng trong

Chọn <('foo' đối tỷ lệ kèo bóng đá 88 "FR_FR") từ Test1;

So sánh được thực hiện bằng cách sử dụngFR_FRQuy tắc, bởi vì dẫn xuất đối tỷ lệ kèo bóng đá 88 rõ ràng ghi đè lên một trong những ẩn ý. Hơn nữa, đã cho

Chọn A <B từ Test1;

Trình phân tích cú pháp không thể xác định đối tỷ lệ kèo bóng đá 88 nào sẽ áp dụng, vìABCác cột có các đối tỷ lệ kèo bóng đá 88 ngầm xung đột. Kể từ<Nhà điều hành cần biết sử dụng đối tỷ lệ kèo bóng đá 88 nào, điều này sẽ dẫn đến lỗi. Lỗi có thể được giải quyết bằng cách đính kèm trình xác định đối tỷ lệ kèo bóng đá 88 rõ ràng vào biểu thức đầu vào, do đó:

Chọn A <B Collate "DE_DE" từ Test1;

hoặc tương đương

Chọn một đối tỷ lệ kèo bóng đá 88 "de_de" <b từ test1;

Mặt khác, trường hợp tương tự về mặt cấu trúc

Chọn A || B từ Test1;

không dẫn đến lỗi, vì||Nhà điều hành không quan tâm đến các đối thủ: Kết quả của nó là như nhau bất kể đối tỷ lệ kèo bóng đá 88.

Trụ đồng được gán cho chức năng hoặc biểu thức đầu vào kết hợp của toán tử cũng được coi là áp dụng cho kết quả của hàm hoặc toán tử, nếu hàm hoặc toán tử cung cấp kết quả của loại dữ liệu có thể ghép. Vì vậy, trong

Chọn * Từ đơn đặt hàng Test1 của A || 'foo';

Đặt hàng sẽ được thực hiện theode_deQuy tắc. Nhưng truy vấn này:

Chọn * Từ đơn đặt hàng Test1 của A || B;

dẫn đến lỗi, vì mặc dù||Nhà điều hành không cần biết đối tỷ lệ kèo bóng đá 88,Đặt hàng bởimệnh đề không. Như trước đây, xung đột có thể được giải quyết với một trình xác định đối tỷ lệ kèo bóng đá 88 rõ ràng:

Chọn * Từ đơn đặt hàng Test1 của A || B đối tỷ lệ kèo bóng đá 88 "FR_FR";

22.2.2. Quản lý đối tỷ lệ kèo bóng đá 88

Một đối tỷ lệ kèo bóng đá 88 là một đối tượng Lược đồ SQL ánh xạ tên SQL cho các địa phương hệ điều hành. Cụ thể, nó ánh xạ vào sự kết hợp củaLC_Collatelc_ctype. (Như tên sẽ đề xuất, mục đích chính của một đối tỷ lệ kèo bóng đá 88 là đặtlc_collate, kiểm soát thứ tự sắp xếp. Nhưng nó hiếm khi cần thiết trong thực tế để có mộtlc_ctypeCài đặt khác vớilc_collate, vì vậy sẽ thuận tiện hơn khi thu thập những điều này theo một khái niệm hơn là tạo ra một cơ sở hạ tầng khác để thiết lậplc_ctypemỗi biểu thức.) Ngoài ra, một đối tỷ lệ kèo bóng đá 88 được gắn với một mã hóa bộ ký tự (xemPhần 22.3). Cùng tên đối tỷ lệ kèo bóng đá 88 có thể tồn tại cho các mã hóa khác nhau.

Trên tất cả các nền tảng, các đối tỷ lệ kèo bóng đá 88 có tênmặc định, CPOSIXcó sẵn. Các đối tỷ lệ kèo bóng đá 88 bổ sung có thể có sẵn tùy thuộc vào hỗ trợ hệ điều hành.mặc địnhđối tỷ lệ kèo bóng đá 88 chọnlc_collatelc_ctypeGiá trị được chỉ định tại thời gian tạo cơ sở dữ liệu. TheCPOSIXCollations Cả hai chỉ định"truyền thống C"Hành vi, chỉ trong đó các chữ cái ASCII"A"đến"Z"được coi là chữ cái và việc sắp xếp được thực hiện hoàn toàn theo giá trị byte mã ký tự.

Nếu hệ điều hành cung cấp hỗ trợ sử dụng nhiều địa phương trong một chương trình (Newlocalevà các chức năng liên quan), sau đó khi cụm cơ sở dữ liệu được khởi tạo,initDBđông đảo danh mục hệ thốngpg_collationVới các đối tỷ lệ kèo bóng đá 88 dựa trên tất cả các địa phương mà nó tìm thấy trên hệ điều hành tại thời điểm đó. Ví dụ: hệ điều hành có thể cung cấp một địa phương có tênde_de.utf8. initDBSau đó sẽ tạo một đối tỷ lệ kèo bóng đá 88 có tênde_de.utf8cho mã hóaUTF8có cả hailc_collatelc_ctypeĐặt thànhde_de.utf8. Nó cũng sẽ tạo ra một sự đối tỷ lệ kèo bóng đá 88 với.UTF8TAG bị tước tên. Vì vậy, bạn cũng có thể sử dụng đối tỷ lệ kèo bóng đá 88 dưới tênde_de, ít cồng kềnh hơn để viết và làm cho tên ít phụ thuộc vào mã hóa. Lưu ý rằng, tuy nhiên, tập hợp các tên đối tỷ lệ kèo bóng đá 88 ban đầu phụ thuộc vào nền tảng.

Trong trường hợp cần đối tỷ lệ kèo bóng đá 88 có các giá trị khác nhau cholc_collatelc_ctype, một đối tỷ lệ kèo bóng đá 88 mới có thể được tạo bằng cách sử dụngPostgreSQL: Tài liệu: 9.4: TạoLệnh. Lệnh đó cũng có thể được sử dụng để tạo một đối tỷ lệ kèo bóng đá 88 mới từ một đối tỷ lệ kèo bóng đá 88 hiện có, có thể hữu ích để có thể sử dụng tên đối tỷ lệ kèo bóng đá 88 độc lập với hệ điều hành trong các ứng dụng.

Trong bất kỳ cơ sở dữ liệu cụ thể nào, chỉ các đối tỷ lệ kèo bóng đá 88 sử dụng mã hóa cơ sở dữ liệu đó được quan tâm. Các mục khác trongpg_collationbị bỏ qua. Do đó, một tên đối tỷ lệ kèo bóng đá 88 bị tước nhưde_decó thể được coi là duy nhất trong một cơ sở dữ liệu nhất định mặc dù nó sẽ không phải là duy nhất trên toàn cầu. Nên sử dụng các tên đối tỷ lệ kèo bóng đá 88 bị tước, vì nó sẽ làm cho một điều bạn cần thay đổi ít hơn nếu bạn quyết định thay đổi thành mã hóa cơ sở dữ liệu khác.Mặc định, CPOSIXđối tỷ lệ kèo bóng đá 88 có thể được sử dụng bất kể mã hóa cơ sở dữ liệu.

PostgreSQLcoi các đối tượng đối tỷ lệ kèo bóng đá 88 khác biệt là không tương thích ngay cả khi chúng có các thuộc tính giống hệt nhau. Do đó, ví dụ,

Chọn một đối tỷ lệ kèo bóng đá 88 "C" <b đối tỷ lệ kèo bóng đá 88 "POSIX" từ Test1;

sẽ rút lỗi mặc dùCPOSIXCollations có những hành vi giống hệt nhau. Do đó, trộn các tên đối tỷ lệ kèo bóng đá 88 bị tước và không dải không được khuyến khích.