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 TEXTo 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,VARCHAReTEXT. IlCHARè un tipo di carattere a lunghezza fissa mentre ilVARCHARe ilTEXTsono 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) eTEXTsono equivalenti.
- Questo tutorial è stato utile?
- SìNo