Differenza chiave: nei sistemi di database come SQL Server, Char e Varchar sono entrambi tipi di dati, in cui il carattere effettivamente si riferisce al carattere e Varchar si riferisce al carattere variabile. Entrambi sono utilizzati per memorizzare tipi di stringhe di valori con una lunghezza massima di 8.000 caratteri. La dimensione di memorizzazione del char è la stessa di dichiarata mentre lo stage sixe di Varchar dipende dai byte dei dati effettivi immessi.
Facciamo un esempio: se un dato Char viene dichiarato in un modo: dichiarare Char di prova (20) e test = "testing", il test occuperà i primi 7 byte e il resto sarà riempito con dati vuoti. D'altra parte, se un dato Varchar è dichiarato in un modo: dichiarare test Varchar (20), e test = "testing", allora occuperà solo 7 + 2 byte.
Char dovrebbe essere usato quando la lunghezza della variabile è nota, mentre Varchar dovrebbe essere usato solo quando la lunghezza è sconosciuta. Char è più veloce di Varchar, poiché il sistema di Varchar impiega un po 'di tempo per rilevare il tempo per scoprire la fine della stringa. D'altra parte, questa volta non è sprecata in Char.
Confronto tra Char e Varchar:
carbonizzare | Varchar | |
Modulo completo | Personaggio | Carattere variabile (in relazione al carattere di lunghezza variabile) |
Senso | Utilizzato per memorizzare dati di stringa non Unicode di lunghezza fissa | Utilizzato per memorizzare dati di stringhe non Unicode di lunghezza variabile |
Byte utilizzati per l'archiviazione | 1 byte per carattere | 1 byte per carattere e 1 o 2 byte aggiuntivi per contenere informazioni sulla lunghezza |
Applicazione | Utilizzato per la memorizzazione di dati come il numero di telefono, ecc. (Le voci di dati sono coerenti). | Utilizzato per la memorizzazione di dati come Indirizzo (le voci di dati variano in gran parte) |
Condizione: stringa di input inferiore a byte dichiarati | Lo spazio senza carattere sarà riempito con caratteri spaziali | Lo spazio senza carattere non verrà riempito con nessuno dei personaggi |
Condizione: stringa di input più di byte dichiarati | La stringa verrà troncata ai byte dichiarati | La stringa verrà troncata ai byte dichiarati. |