Entrambi sono tipi di dati in molti linguaggi di programmazione e sistemi di database in cui "char" si riferisce al carattere e "varchar" si riferisce al carattere variabile. Char in C rappresenta il tipo di carattere che viene utilizzato per memorizzare i valori di stringa, per lo più caratteri e numeri interi con codifica UTF-8. Varchar, d'altra parte, è un tipo di dati che può contenere dati di qualsiasi tipo di lunghezza indeterminata. Varchar fa riferimento a un tipo di dati di un campo in un sistema di gestione del database. Mentre entrambi possono memorizzare valori di stringa fino a una lunghezza massima di 8.000 caratteri, char richiede più spazio di archiviazione rispetto a varchar. Tecnicamente, sono entrambi utilizzati per memorizzare gli stessi tipi di dati ma differiscono nel modo in cui sono memorizzati e recuperati. Diamo un'occhiata alle loro differenze in dettaglio.
Char è un tipo di dati a lunghezza fissa che viene utilizzato per memorizzare caratteri non Unicode, da cui il nome (abbreviazione di carattere). Occupa un byte di spazio per ogni carattere che sono codificati come numeri, quelli della codifica ASCII. Il tipo char può anche essere utilizzato per dichiarare piccoli numeri interi. Per dichiarare una variabile di carattere, viene utilizzata la parola chiave 'char', che significa che un singolo carattere è memorizzato in un byte.
Come i tipi interi, il char può essere firmato o non firmato. Può contenere valori di char firmati compresi tra -128 e 127 e, a seconda delle dimensioni dell'architettura, può anche essere senza segno, con valori compresi tra 0 e 255. Quando i valori char vengono memorizzati, vengono riempiti a destra con spazi della lunghezza specificata . Gli spazi finali vengono rimossi quando vengono recuperati.
Ad esempio, se si dichiara una variabile di tipo di dati char (7), saranno sempre necessari 7 byte di dati indipendentemente dal fatto che si memorizzino 1 carattere o 7 caratteri, il che significa che è possibile memorizzare un massimo di 7 caratteri nella colonna.
Varchar, come suggerisce il nome, è un tipo di dati a lunghezza variabile che può contenere qualsiasi tipo di dati con lunghezza variabile da 0 a 65.535. Il campo Varchar può memorizzare valori di qualsiasi dimensione fino a un certo limite, a seconda del database. Può essere definito sia in linguaggi di programmazione che a livello di database. La dimensione del campo varchar può essere qualsiasi cosa da zero alla lunghezza massima dichiarata del campo.
Per dichiarare un carattere variabile, viene utilizzata la parola chiave 'varchar'. Varchar prende uno spazio variabile, il che significa che utilizzerà solo il numero di byte uguale al numero di caratteri. Aiuta ad evitare lo spreco di spazio in quanto utilizza solo lo spazio richiesto per la dimensione della stringa. In alcuni linguaggi di programmazione e sistemi di database, qualsiasi spazio aggiuntivo viene rimosso automaticamente dal database.
Ad esempio, se dichiari una variabile di varchar (10), utilizzerà il numero di byte uguale al numero di caratteri. Quindi, se stai memorizzando solo un carattere, allora ci vorrà solo un byte e se stai memorizzando 10 caratteri, ci vorranno 10 byte, evitando così lo spreco di spazio del database.
'Char' è un tipo di dati a lunghezza fissa che viene utilizzato per memorizzare il valore di stringa di caratteri di lunghezza fissa, mentre 'Varchar' è un tipo di dati a lunghezza variabile che viene utilizzato per memorizzare dati alfanumerici di lunghezza variabile.
La dimensione di archiviazione del valore del carattere è uguale alla dimensione massima di questa colonna dichiarata durante la creazione della tabella. D'altra parte, la dimensione di archiviazione del valore varchar è la lunghezza effettiva dei dati immessi, non la dimensione massima per questa colonna.
È possibile utilizzare char quando si prevede che le voci di dati in una colonna abbiano la stessa dimensione, mentre, al contrario, è possibile utilizzare varchar quando si prevede che le voci di dati in una colonna abbiano dimensioni variabili.
Char utilizza l'allocazione della memoria statica mentre varchar utilizza l'allocazione dinamica della memoria
La lunghezza di una variabile char può essere di qualsiasi valore compreso tra 0 e 255, mentre la lunghezza della variabile varchar va da 0 a 65.535.
Le voci di dati sono coerenti in char che viene utilizzato per la memorizzazione di dati come numeri di telefono, mentre varchar viene utilizzato per memorizzare dati variabili come indirizzi.
carbonizzare | Varchar |
Utilizzato per memorizzare il valore di stringa di caratteri di lunghezza fissa. | Utilizzato per memorizzare dati alfanumerici di lunghezza variabile. |
La lunghezza varia da 0 a 255. | La lunghezza varia da 0 a 65.535. |
Accetta 1 byte per carattere per la memorizzazione. | Accetta 1 byte per carattere più 1 o 2 byte extra per memorizzare le informazioni sulla lunghezza. |
La dimensione di archiviazione di char è la stessa di dichiarata. | La dimensione di archiviazione di varchar dipende dalla stringa specifica memorizzata. |
Utilizza l'allocazione della memoria statica. | Utilizza l'allocazione dinamica della memoria. |
Char dovrebbe essere usato quando la lunghezza della variabile è nota. | Varchar dovrebbe essere usato solo quando la lunghezza della variabile non è nota. |
Accetta solo caratteri. | Accetta sia caratteri che numeri. |
È il 50 percento più veloce di Varchar. | È più lento di Char. |
La dimensione di archiviazione del valore char è uguale alla dimensione massima per la colonna. | La dimensione di archiviazione del valore varchar è uguale alla lunghezza effettiva dei dati immessi, non alla dimensione massima della colonna. |