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, VARCHAR e TEXT. Il CHAR è un tipo di carattere a lunghezza fissa mentre il VARCHAR e il TEXT 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) e TEXT sono equivalenti.
  • Questo tutorial è stato utile?
  • SìNo

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.