Rezumat: în acest tutorial, veți învăța despre tipurile de date de caractere PostgreSQL, inclusiv CHAR
, VARCHAR
și TEXT
, și veți învăța cum să selectați tipurile de caractere potrivite pentru tabelele dumneavoastră.
Introducere la tipurile de caractere PostgreSQL
PostgreSQL oferă trei tipuri de caractere primare: CHARACTER(n)
sau CHAR(n)
, CHARACTER VARYINGING(n)
sau VARCHAR(n)
, și TEXT
, unde n
este un număr întreg pozitiv.
Tabelul următor ilustrează tipurile de caractere din PostgreSQL:
Tipuri de caractere | Descriere |
CHARACTER VARYING(n) , VARCHAR(n) |
Lungime variabilă cu limită de lungime |
CHARACTER(n) , CHAR(n) |
lungime fixă, cu umplutură albă |
TEXT , VARCHAR |
variabilă cu lungime nelimitată |
Atât CHAR(n)
cât și VARCHAR(n)
pot stoca până la n
caractere. Dacă încercați să stocați un șir care are mai mult de n
caractere, PostgreSQL va emite o eroare.
Cu toate acestea, o excepție este că, dacă caracterele excesive sunt toate spații, PostgreSQL trunchiază spațiile la lungimea maximă (n
) și stochează caracterele.
Dacă un șir de caractere se transformă în mod explicit într-un CHAR(n)
sau VARCHAR(n)
, PostgreSQL va trunchia șirul la n
caractere înainte de a-l introduce în tabel.
Tipul de date TEXT
poate stoca un șir de caractere cu lungime nelimitată.
Dacă nu specificați numărul întreg n pentru tipul de date VARCHAR
, acesta se comportă ca tipul de date TEXT
. Performanțele tipului de date VARCHAR
(fără dimensiunea n
) și TEXT
sunt aceleași.
Singurul avantaj al specificării specificatorului de lungime pentru tipul de date VARCHAR
este că PostgreSQL va emite o eroare dacă încercați să inserați un șir care are mai mult de n
caractere în coloana VARCHAR(n)
.
Dincolo de VARCHAR
, CHARACTER
sau CHAR
fără specificatorul de lungime (n
) este la fel ca CHARACTER(1)
sau CHAR(1)
.
Diferit de alte sisteme de baze de date, în PostgreSQL, nu există nicio diferență de performanță între cele trei tipuri de caractere.
În majoritatea cazurilor, ar trebui să utilizați TEXT
sau VARCHAR
. Și folosiți VARCHAR(n)
atunci când doriți ca PostgreSQL să verifice lungimea.
Exemple de tipuri de caractere PostgreSQL
Să ne uităm la un exemplu pentru a vedea cum funcționează tipurile de date CHAR
, VARCHAR
și TEXT
.
În primul rând, creați o nouă tabelă numită teste_caractere:
Code language: SQL (Structured Query Language) (sql)
Apoi, inserați un nou rând în tabela character_tests
.
Code language: SQL (Structured Query Language) (sql)
PostgreSQL a emis o eroare:
Code language: SQL (Structured Query Language) (sql)
Acest lucru se datorează faptului că tipul de date al coloanei x
este char(1)
și am încercat să inserăm un șir cu trei caractere în această coloană. Să o corectăm:
Code language: SQL (Structured Query Language) (sql)
PostgreSQL emite o altă eroare:
Code language: Shell Session (shell)
Aceasta se datorează faptului că am încercat să inserăm un șir de caractere cu mai mult de 10 caractere în coloana y
care are tipul de date varchar(10)
.
Declarația următoare inserează cu succes un rând nou în tabelul character_tests
.
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Code language: Shell Session (shell)
Summary
- PostgreSQL acceptă tipurile de date
CHAR
,VARCHAR
șiTEXT
.CHAR
este un tip de caractere cu lungime fixă, în timp ceVARCHAR
șiTEXT
sunt tipuri de caractere cu lungime variabilă. - Utilizați
VARCHAR(n)
dacă doriți să validați lungimea șirului (n
) înainte de a introduce sau actualiza o coloană. -
VARCHAR
(fără specificatorul de lungime) șiTEXT
sunt echivalente.
- A fost util acest tutorial?
- DaNu
.