PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Нуждаете се от обяснение за типовете символи в PostgreSQL

В случай, че идвате от C опит, тип символен низ в PostgreSQL е не масив от знаци.

За всеки тип foo в PostgreSQL има съответен тип масив foo[] който обозначава масив от стойности от тип foo . Използвайте типове масиви само ако не планирате да ги манипулирате много вътре в базата данни; ако го направите, обикновено е по-добре да нормализирате масива в отделна таблица.

Като оставим настрана типовете масиви, има различни типове знаци:

  • "char" (двойните кавички са задължителни):един знак. Използва се предимно в каталожни таблици. Не използвайте този тип, освен ако не знаете какво правите.

  • character(n) или char(n) :символен низ с фиксирана дължина. Без значение какво съхранявате там, то винаги ще бъде подплатено с празни места от дясната страна. Поведението, както се диктува от SQL стандарта, понякога е изненадващо, така че рядко искате този тип.

  • text :символен низ с произволна дължина. Това е типът, който искате за символни низове, освен ако не искате базата данни да наложи ограничение на дължината.

  • character varying(n) или varchar(n) :това е същото като text с допълнително ограничение на дължината.

За да го завърша с пример:

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. Как да приложим връзка много към много в PostgreSQL?

  2. -bash:pg_dump:командата не е намерена

  3. Postgresql ляво външно съединяване на json масив

  4. качване на шев файл в postgres bytea колона колона е bytea, но изразът е от тип bigint

  5. Сортирайте клеймата за време (включително бъдеще) по абсолютно разстояние от сега