PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cần giải thích về các loại ký tự trong PostgreSQL

Trong trường hợp bạn đến từ nền C, kiểu chuỗi ký tự trong PostgreSQL là không một mảng các ký tự.

Đối với mỗi loại foo trong PostgreSQL, có một kiểu mảng tương ứng foo[] biểu thị một mảng giá trị kiểu foo . Chỉ sử dụng các kiểu mảng nếu bạn không có kế hoạch thao tác nhiều với chúng bên trong cơ sở dữ liệu; nếu bạn làm vậy, thường tốt hơn là chuẩn hóa mảng thành một bảng riêng biệt.

Bỏ qua các kiểu mảng, có các kiểu ký tự khác nhau:

  • "char" (bắt buộc phải có dấu ngoặc kép):một ký tự đơn. Chủ yếu được sử dụng trong các bảng danh mục. Không sử dụng loại này trừ khi bạn biết mình đang làm gì.

  • character(n) hoặc char(n) :chuỗi ký tự có độ dài cố định. Không có vấn đề gì bạn lưu trữ ở đó, nó sẽ luôn luôn được đệm bằng các khoảng trống ở phía bên phải. Hành vi, như được quy định bởi tiêu chuẩn SQL, đôi khi gây ngạc nhiên, vì vậy bạn hiếm khi muốn loại này.

  • text :chuỗi ký tự có độ dài tùy ý. Đây là kiểu bạn muốn cho các chuỗi ký tự trừ khi bạn muốn cơ sở dữ liệu áp đặt giới hạn độ dài.

  • character varying(n) hoặc varchar(n) :cái này giống với text với giới hạn độ dài bổ sung.

Để làm tròn nó bằng một ví dụ:

CREATE TABLE strtest(
   id serial PRIMARY KEY,
   sc "char",
   c character(10),
   vc character varying(10),
   vca character varying(10)[]
);

INSERT INTO strtest (sc, c, vc, vca)
   VALUES (
      'x',
      'short',
      'short',
      ARRAY['short1', 'short2', 'short3']
   );

SELECT sc, c, vc, vca[2] FROM strtest;
 sc |     c      |  vc   |  vca
----+------------+-------+--------
 x  | short      | short | short2
(1 row)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các tình huống thất bại PostgreSQL phổ biến nhất

  2. Hiển thị tin nhắn cuối cùng trong một mảng tin nhắn

  3. Postgresql ON CONFLICT trong sqlalchemy

  4. Các phương pháp hay nhất về bảo mật PostgreSQL

  5. SELECT DISTINCT chậm hơn mong đợi trên bảng của tôi trong PostgreSQL