Sommario: in questo tutorial, imparerai a conoscere i tipi di carattere PostgreSQL, inclusi CHAR
, VARCHAR
, e TEXT
, e imparerai come selezionare i tipi di carattere giusti per le tue tabelle.
Introduzione ai tipi di carattere PostgreSQL
PostgreSQL fornisce tre tipi di carattere principali: CHARACTER(n)
o CHAR(n)
, CHARACTER VARYINGING(n)
o VARCHAR(n)
, e TEXT
, dove n
è un numero intero positivo.
La seguente tabella illustra i tipi di carattere in PostgreSQL:
Tipi di carattere | Descrizione |
CHARACTER VARYING(n) , VARCHAR(n) |
lunghezza variabile con limite di lunghezza |
CHARACTER(n) , CHAR(n) |
lunghezza fissa, vuoto imbottito |
TEXT , VARCHAR |
lunghezza variabile illimitata |
Sia CHAR(n)
che VARCHAR(n)
possono memorizzare fino a n
caratteri. Se provate a memorizzare una stringa che ha più di n
caratteri, PostgreSQL darà un errore.
Tuttavia, un’eccezione è che se i caratteri in eccesso sono tutti spazi, PostgreSQL tronca gli spazi alla lunghezza massima (n
) e memorizza i caratteri.
Se una stringa viene castata esplicitamente in un CHAR(n)
o VARCHAR(n)
, PostgreSQL troncherà la stringa a n
caratteri prima di inserirla nella tabella.
Il tipo di dati TEXT
può memorizzare una stringa di lunghezza illimitata.
Se non si specifica il numero intero n per il tipo di dati VARCHAR
, si comporta come il tipo di dati TEXT
. Le prestazioni del VARCHAR
(senza la dimensione n
) e del TEXT
sono le stesse.
L’unico vantaggio di specificare lo specificatore di lunghezza per il tipo di dati VARCHAR
è che PostgreSQL darà un errore se si tenta di inserire una stringa che ha più di n
caratteri nella colonna VARCHAR(n)
.
A differenza di VARCHAR
, il CHARACTER
o CHAR
senza lo specificatore di lunghezza (n
) è lo stesso del CHARACTER(1)
o CHAR(1)
.
Diversamente da altri sistemi di database, in PostgreSQL, non c’è differenza di prestazioni tra tre tipi di carattere.
Nella maggior parte dei casi, si dovrebbe usare TEXT
o VARCHAR
. E si usa il VARCHAR(n)
quando si vuole che PostgreSQL controlli la lunghezza.
Esempi di tipi di carattere PostgreSQL
Diamo un’occhiata a un esempio per vedere come funzionano i tipi di dati CHAR
, VARCHAR
e TEXT
.
Prima di tutto, create una nuova tabella chiamata character_tests:
Code language: SQL (Structured Query Language) (sql)
Poi, inserite una nuova riga nella tabella character_tests
.
Code language: SQL (Structured Query Language) (sql)
PostgreSQL ha emesso un errore:
Code language: SQL (Structured Query Language) (sql)
Questo perché il tipo di dati della colonna x
è char(1)
e abbiamo provato a inserire una stringa con tre caratteri in questa colonna. Risolviamolo:
Code language: SQL (Structured Query Language) (sql)
PostgreSQL emette un errore diverso:
Code language: Shell Session (shell)
Questo è perché abbiamo cercato di inserire una stringa con più di 10 caratteri nella colonna y
che ha il tipo di dati varchar(10)
.
La seguente istruzione inserisce con successo una nuova riga nella tabella character_tests
.
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Code language: Shell Session (shell)
Sommario
- PostgreSQL supporta i tipi di dati
CHAR
,VARCHAR
eTEXT
. IlCHAR
è un tipo di carattere a lunghezza fissa mentre ilVARCHAR
e ilTEXT
sono tipi di carattere a lunghezza variabile. - Usa
VARCHAR(n)
se vuoi convalidare la lunghezza della stringa (n
) prima di inserire o aggiornare una colonna. -
VARCHAR
(senza lo specificatore di lunghezza) eTEXT
sono equivalenti.
- Questo tutorial è stato utile?
- SìNo