In questa sezione, andiamo a capire il funzionamento dei tipi di dati varchar di PostgreSQL, che ci permette di memorizzare il carattere di lunghezza illimitata. E vediamo anche esempi del tipo di dati Varchar e degli spazi.
Che cos’è il tipo di dati Varchar di PostgreSQL?
In PostgreSQL, il tipo di dati Varchar è usato per conservare il carattere di lunghezza infinita. E può contenere una stringa con una lunghezza massima di 65.535 byte.
In altre parole, possiamo dire che il tipo di dati Varchar di PostgreSQL usa il tipo di dati di carattere, che è indicato come VARCHAR.
- Per lo più dovremmo usare i tipi di dati Varchar e Text. Se vogliamo che PostgreSQL controlli la lunghezza, allora usiamo il VARCHAR(n).
- In PostgreSQL, il varchar illustra come Varchar (n), dove n è usato per indicare il limite della lunghezza del carattere. Se n non è descritto, ha come default Varchar che ha lunghezza infinita.
- Se cerchiamo di ottenere una stringa più lunga nella colonna specificata con Varchar(n), il PostgreSQL si verifica un errore nell’output.
- Ancora, abbiamo un’eccezione se i caratteri aggiuntivi sono tutti spazi, poi il PostgreSQL taglierà gli spazi alla lunghezza massima (n) e memorizzare la stringa.
- PostgreSQL controllerà e solleverà un errore se definiamo lo specificatore di lunghezza per il tipo di dati Varchar o se cerchiamo di inserire più di n caratteri nella colonna Varchar(n).
Nota: Un tipo di dati varchar è una stringa di lunghezza variabile che può contenere caratteri speciali, numeri e lettere. E n memorizza un testo la cui lunghezza può avere un massimo di 0 a 65535 caratteri.
Sintassi del tipo di dati Varchar di PostgreSQL
La sintassi del tipo di dati Varchar di PostgreSQL è la seguente:
Esempi del tipo di dati Varchar di PostgreSQL
Vediamo diversi esempi per capire come funziona il tipo di dati Varchar di PostgreSQL.
Per questo, creeremo una nuova tabella di nome Varchar_demo con l’aiuto del comando CREATE e inseriremo alcuni valori usando il comando INSERT.
Creeremo le tabelle Varchar_demo nel database Organization usando il comando CREATE:
Output
Dopo aver eseguito con successo il comando sopra, la tabella Varchar_demo è stata creata, come mostrato nell’immagine sottostante:
Una volta che la tabella Varchar_demo è stata generata, vi inseriremo alcuni valori usando il comando INSERT.
Output
Dopo aver eseguito il comando di cui sopra, otterremo il seguente output, PostgreSQL emetterà un errore che “il valore è troppo lungo per il tipo carattere variabile (1)”.
Questo significa che il tipo di dati della colonna P è VARCHAR (1), e dove stiamo cercando di inserire una stringa con tre caratteri in una particolare colonna come possiamo osservare nello screenshot qui sotto:
Per risolvere l’errore di cui sopra, useremo il seguente comando:
Output
Eseguendo il comando di cui sopra, PostgreSQL emette nuovamente un errore simile per la colonna Q, il che significa che il tipo di dati della colonna Q è VARCHAR (10). Al contrario, il numero di caratteri inseriti è più di 10, come possiamo osservare nello screenshot seguente:
Pertanto, per risolvere entrambi gli errori di cui sopra, useremo il comando seguente:
Output
Dopo aver eseguito il comando precedente, otterremo il seguente risultato: il valore è stato inserito con successo nella tabella Varchar_demo.
Come possiamo vedere nello screenshot qui sopra, abbiamo inserito con successo i valori delle colonne P e Q.
Dopo aver creato e inserito i valori della tabella Varchar_demo, useremo il comando SELECT per restituire tutte le righe della tabella Varchar_demo:
Output
Dopo aver eseguito il comando precedente, otterremo il seguente risultato dove possiamo vedere che entrambi i valori della colonna P e della colonna Q sono stati inseriti con successo nella tabella Varchar_demo.
Esempio 2
Vediamo un altro esempio per imparare il tipo di dati Varchar in dettaglio. Creiamo una nuova tabella come Varchar_demo2 con l’aiuto del comando CREATE e inseriamo alcuni valori usando il comando INSERT.
Creeremo Varchar_demo2 in un database simile al precedente che è Organizzazione usando il comando CREATE:
Output
La tabella Varchar_demo2 è stata creata con successo dopo aver eseguito il comando di cui sopra, come mostrato nello screenshot sottostante:
Una volta che la tabella Varchar_demo2 è stata generata, possiamo inserire alcuni valori in essa usando il comando INSERT.
Output
Dopo aver eseguito il comando di cui sopra. PostgreSQL dà il messaggio di errore “il valore è troppo lungo per il tipo Character (1)”. L’output lo spiega più chiaramente.
Esempio di PostgreSQL VARCHAR e spazi
PostgreSQL non estende lo spazio per i valori varchar quando memorizzati, e PostgreSQL prende anche gli spazi finali quando memorizza o recupera valori Varchar.
Per questo, vedremo il seguente esempio per capirlo in cui si inserisce il comando Insert, e si aggiungono valori nella colonna Name nella tabella Varchar_demo2, che abbiamo creato nell’esempio precedente:
Output
Dopo aver eseguito il comando sopra, otterremo il seguente risultato: il valore è stato inserito con successo nella tabella Varchar_demo2.
Dopo aver creato e inserito i valori della tabella Varchar_demo2, useremo il comando SELECT per recuperare i valori dalla tabella Varchar_demo2:
Output
Dopo aver eseguito il comando precedente, otterremo il seguente risultato dove PostgreSQL contiene lo spazio finale nel conteggio della lunghezza poiché non aumenta la lunghezza della colonna.
Se cerchiamo di inserire un valore Varchar con spazi di coda che superano la lunghezza della colonna, PostgreSQL troncherà gli spazi di coda. Inoltre, PostgreSQL solleva un avviso. Come abbiamo mostrato nel seguente esempio:
Output
Eseguendo il comando di cui sopra, otterremo il seguente risultato:
Nel comando di cui sopra, la lunghezza del valore inserito è sei nella colonna Nome. E il valore è ancora inserito nella colonna. Tuttavia, PostgreSQL taglia lo spazio finale prima di aggiungere il valore.
Possiamo controllarlo con l’aiuto del seguente comando, dove il comando Insert viene aggiunto con successo.
Output
Dopo aver implementato il comando di cui sopra, otterremo l’output seguente ancora con un avviso che è: Data truncated for column ‘Name’ at row 1:
Differenza tra PostgreSQL CHAR e PostgreSQL VARCHAR Data Type
I tipi di dati PostgreSQL CHAR e VARCHAR sono entrambi caratteri ASCII. Sono praticamente simili ma diversi nel memorizzare e ottenere i dati dal database.
La seguente tabella evidenzia le differenze essenziali tra i tipi di dati CHAR e VARCHAR:
Il tipo di dati CHAR di PostgreSQL | Il tipo di dati VARCHAR di PostgreSQL |
---|---|
PostgreSQL supporta l’assegnazione statica della memoria per il tipo di dati Char. | PostgreSQL supporta l’allocazione dinamica della memoria per il tipo di dati Varchar. |
Il tipo di dati Char è anche conosciuto come Character. | Il tipo di dati Varchar è anche chiamato Carattere variabile. |
Il tipo di dati char non può contenere più di 255 caratteri. | Il tipo di dati Varchar può contenere fino a 65535 caratteri. |
Il tipo di dati Char memorizza i valori in lunghezza fissa, che rappresentiamo durante la creazione di una tabella. | Il tipo di dati Varchar memorizza i valori in una stringa di lunghezza variabile con un prefisso di uno o due byte. |
Può essere riempito con spazio finale per contenere la lunghezza specificata. | Non può essere riempito con nessun carattere, con spazio, quando sono memorizzati. |
Panoramica
Nella sezione sul tipo di dati Varchar di PostgreSQL, abbiamo imparato i seguenti argomenti:
- Il tipo di dati Varchar si usa per tipi di carattere di lunghezza variabile.
- Se vogliamo controllare la lunghezza della stringa (n) prima di inserirla o aggiornarla nella colonna, possiamo usare il tipo di dati Varchar(n).
- Utilizziamo il tipo di dati Varchar di PostgreSQL e gli spazi.