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.3. Các soi kèo bóng đá truoctran ký tự#

Bảng 8.4. Các soi kèo bóng đá truoctran ký tự

tên Mô tả
Nhân vật khác nhau (n), Varchar (n) độ dài biến với giới hạn
ký tự (n), char (n), bpchar (n) độ dài cố định, trống tròn
bpchar Biến độ dài không giới hạn, được cắt trống
Text Biến độ dài không giới hạn

Bảng 8.4Hiển thị các soi kèo bóng đá truoctran ký tự có mục đích chung có sẵn trongPostgreSQL.

SQLXác định hai soi kèo bóng đá truoctran ký tự chính:Nhân vật khác nhau (n)ký tự (n), trong đónlà một số nguyên dương. Cả hai soi kèo bóng đá truoctran này đều có thể lưu trữ chuỗi lên đếnnký tự (không phải byte) theo chiều dài. Một nỗ lực để lưu trữ một chuỗi dài hơn vào một cột của các soi kèo bóng đá truoctran này sẽ dẫn đến một lỗi, trừ khi các ký tự dư là tất cả các khoảng trắng, trong trường hợp đó, chuỗi sẽ bị cắt theo độ dài tối đa. (Ngoại lệ hơi kỳ quái này được yêu cầu bởiSQLTiêu chuẩn.) Tuy nhiên, nếu người ta đưa ra một giá trị rõ ràng làNhân vật khác nhau (n)hoặcký tự (n), sau đó giá trị dài hơn sẽ bị cắt xuốngnsoi kèo bóng đá truoctran ký tự không gây ra lỗi. (Điều này cũng được yêu cầu bởiSQLTiêu chuẩn.) Nếu chuỗi được lưu trữ ngắn hơn độ dài được khai báo, các giá trị của soi kèo bóng đá truoctranký tựsẽ được dán không gian; giá trị của soi kèo bóng đá truoctranNhân vật khác nhauSẽ chỉ cần lưu trữ chuỗi ngắn hơn.

Ngoài ra,PostgreSQLcung cấpTextsoi kèo bóng đá truoctran, lưu trữ các chuỗi có độ dài. Mặc dùTextsoi kèo bóng đá truoctran không có trongSQLTiêu chuẩn, một số hệ thống quản lý cơ sở dữ soi kèo bóng đá truoctran SQL khác cũng có nó.TextPostgreSQLKiểu dữ liệu chuỗi gốc, trong đó hầu hết soi kèo bóng đá truoctran hàm tích hợp hoạt động trên soi kèo bóng đá truoctran chuỗi được khai báo hoặc trả lạiTextkhôngNhân vật khác nhau. Cho nhiều mục đích,Nhân vật khác nhauhành vi như thể nó làDOMAINOverText.

tên soi kèo bóng đá truoctranVarchar15168_15187Nhân vật khác nhau, trong khibpchar(với độ dài xác định) vàCharlà bí danh choký tự. TheVarcharChar15453_15483SQLtiêu chuẩn;bpcharlà mộtPostgreSQLMở rộng.

Nếu được chỉ định, độ dàinphải lớn hơn 0 và không thể vượt quá 10,485,760. Nếu nhưNhân vật khác nhau(hoặcVarchar) được sử dụng mà không có bộ xác định độ dài, soi kèo bóng đá truoctran chấp nhận chuỗi có độ dài nào. Nếu nhưbpcharThiếu bộ xác định độ dài, nó cũng chấp nhận soi kèo bóng đá truoctran chuỗi có độ dài nào, nhưng không gian theo dõi là không đáng kể về mặt ngữ nghĩa. Nếu nhưký tự(hoặcChar) thiếu một nhà xác định, nó tương đương với16203_16217.

Giá trị của soi kèo bóng đá truoctranNhân vậtđược đệm vật lý với soi kèo bóng đá truoctran khoảng trống theo chiều rộng được chỉ địnhn, và được lưu trữ và hiển thị theo cách đó. Tuy nhiên, không gian dấu vết được coi là không đáng kể về mặt ngữ nghĩa và bị coi thường khi so sánh hai giá trị của soi kèo bóng đá truoctranký tự. Trong soi kèo bóng đá truoctran đối chiếu trong đó khoảng trắng là đáng kể, hành vi này có thể tạo ra kết quả bất ngờ; Ví dụChọn 'A' :: Char (2) đối chiếu "C" <e'a \ n ':: char (2)Trả về đúng, mặc dùCLocale sẽ coi một không gian lớn hơn một dòng mới. Không gian dấu vết được gỡ bỏ khi chuyển đổi mộtký tựGiá trị cho một trong các soi kèo bóng đá truoctran chuỗi khác. Lưu ý rằng không gian dấu vếtcó ý nghĩa về mặt ngữ nghĩa trongNhân vật khác nhauTextgiá trị và khi sử dụng khớp mẫu, đó lànhưvà soi kèo bóng đá truoctran biểu thức chính quy.

Các ký tự có thể được lưu trữ trong bất kỳ soi kèo bóng đá truoctran dữ liệu nào được xác định bởi bộ ký tự cơ sở dữ liệu, được chọn khi cơ sở dữ liệu được tạo. Bất kể bộ ký tự cụ thể, ký tự có mã số không (đôi khi được gọi là NUL)) không thể được lưu trữ. Để biết thêm thông tin, hãy tham khảo17675_17694.

Yêu cầu lưu trữ cho một chuỗi ngắn (tối đa 126 byte) là 1 byte cộng với chuỗi thực tế, bao gồm phần đệm không gian trong trường hợpký tự17885_18308nTrong khai báo kiểu dữ liệu ít hơn thế. Sẽ không hữu ích khi thay đổi điều này bởi vì với mã hóa ký tự multibyte, số lượng ký tự và byte có thể khá khác nhau. Nếu bạn muốn lưu trữ soi kèo bóng đá truoctran chuỗi dài không có giới hạn trên cụ thể, hãy sử dụngTexthoặcNhân vật khác nhauKhông có bộ xác định độ dài, thay vì tạo ra giới hạn độ dài tùy ý.)

Tip

Không có sự khác biệt về hiệu suất giữa ba soi kèo bóng đá truoctran này, ngoài không gian lưu trữ tăng khi sử dụng soi kèo bóng đá truoctran đệm trống và thêm một vài chu kỳ CPU để kiểm tra độ dài khi lưu trữ vào cột bị hạn chế. Trong khiký tự (n)có lợi thế về hiệu suất trong một số hệ thống cơ sở dữ soi kèo bóng đá truoctran khác, không có lợi thế như vậy trongPostgreSQL; Trên thực tếNhân vật (n)19357_19456TexthoặcNhân vật khác nhaunên được sử dụng thay thế.

Tham khảoPhần 4.1.2.1Để biết thông tin về cú pháp của chuỗi chữ và đếnChương 9Để biết thông tin về soi kèo bóng đá truoctran nhà khai thác và chức năng có sẵn.

Ví dụ 8.1. Sử dụng các soi kèo bóng đá truoctran ký tự

Tạo bảng Test1 (một ký tự (4));
Chèn vào soi kèo bóng đá truoctran giá trị Test1 ('OK');
Chọn A, char_length (a) từ Test1; -(1)A | char_length
------+-------------
 ok |           2Tạo bảng Test2 (b varchar (5));
Chèn vào soi kèo bóng đá truoctran giá trị test2 ('ok');
Chèn vào soi kèo bóng đá truoctran giá trị test2 ('tốt');
Chèn vào soi kèo bóng đá truoctran giá trị test2 ('quá dài');Lỗi: Giá trị quá dài cho soi kèo bóng đá truoctran ký tự khác nhau (5)Chèn vào soi kèo bóng đá truoctran giá trị Test2 ('quá dài' :: Varchar (5)); - Cắt ngắn rõ ràng
Chọn b, char_length (b) từ test2;B | char_length
-------+-------------
 ok |           2
 Tốt |           5
 quá l |           5

(1)

Thechar_lengthHàm được thảo luận trongPhần 9.4.


Có hai soi kèo bóng đá truoctran ký tự có độ dài cố định khác trongPostgreSQL, hiển thị trongBảng 8.5. Chúng không dành cho việc sử dụng đa năng, chỉ để sử dụng trong soi kèo bóng đá truoctran danh mục hệ thống nội bộ. Thetênsoi kèo bóng đá truoctran được sử dụng để lưu trữ số nhận dạng. Độ dài của nó hiện được xác định là 64 byte (63 ký tự có thể sử dụng cộng với Terminator) nhưng nên được tham chiếu bằng cách sử dụng hằng sốĐược đặt têninCMã nguồn. Độ dài được đặt tại thời điểm biên dịch (và do đó có thể điều chỉnh cho mục đích sử dụng đặc biệt); Độ dài tối đa mặc định có thể thay đổi trong một bản phát hành trong tương lai. soi kèo bóng đá truoctran"Char"(Lưu ý soi kèo bóng đá truoctran trích dẫn) khác vớiChar (1)Trong đó nó chỉ sử dụng một byte lưu trữ và do đó chỉ có thể lưu trữ một ký tự ASCII duy nhất. Nó được sử dụng trong danh mục hệ thống như một soi kèo bóng đá truoctran liệt kê đơn giản.

Bảng 8.5. Các soi kèo bóng đá truoctran ký tự đặc biệt

tên Kích thước lưu trữ Mô tả
"Char" 1 byte soi kèo bóng đá truoctran nội bộ đơn lẻ
tên 64 byte soi kèo bóng đá truoctran nội bộ cho tên đối tượng

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài soi kèo bóng đá truoctran không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài soi kèo bóng đá truoctran.