Varchar vs Nvarchar
La differenza tra varchar e nvarchar indica come i dati vengono archiviati in un database. Un sistema di database è costituito da dati e i dati sono definiti da tipi di dati. Un tipo di dati indica il tipo di valore che può contenere una colonna. Ogni colonna in una tabella di database deve avere un nome e un tipo di dati. Oggi, ci sono molti tipi di dati disponibili nella progettazione di database. Di questi tipi di dati, varchar e nvarchar vengono utilizzati per memorizzare i caratteri stringa. Varchar e Nvarchar sembrano essere intercambiabili. Ma questi due tipi hanno vantaggi diversi e vengono utilizzati per scopi diversi.
Cos'è Varchar?
Come suggerisce il nome, varchar è un carattere variabile o un carattere variabile. La sintassi di varchar è VARCHAR [(n|max)]. Varchar memorizza i dati ASCII che non sono dati Unicode ed è il tipo di dati utilizzato nell'uso normale. Varchar utilizza un byte per carattere. Memorizza anche la lunghezza di ogni stringa nel database. Varchar ha una lunghezza dati variabile e può memorizzare un massimo di 8000 caratteri non Unicode. Questo tipo di dati è molto flessibile e accetterà la maggior parte dei diversi tipi di dati. Varchar non consente di memorizzare caratteri vuoti per le parti inutilizzate della stringa. La dimensione massima di archiviazione di varchar è 2 GB e la dimensione di archiviazione reale dei dati è la lunghezza effettiva dei dati più due byte. Sebbene varchar sia più lento di char, utilizza l'allocazione dinamica della memoria. Non solo le stringhe, ma anche i tipi non-string come i tipi di data, "14 febbraio", "2014-12-11" possono anche essere archiviati nel tipo di dati varchar.
Cos'è Nvarchar?
Nvarchar suggerisce un carattere variabile nazionale o un carattere variabile nazionale. La sintassi di nvarchar è NVARCHAR [(n|max)]. Nvarchar può memorizzare diversi tipi di dati con lunghezza variabile. Sono dati Unicode e dati multilingue e lingue con caratteri a doppio byte in cinese. Nvarchar utilizza 2 byte per carattere e può memorizzare un limite massimo di 4000 caratteri e una lunghezza massima di 2 GB. Nvarchar considera “” come una stringa vuota e con lunghezza pari a zero. La dimensione di archiviazione è il doppio della dimensione del numero di caratteri più due byte. In nvarchar, gli spazi finali non vengono rimossi quando il valore viene archiviato e ricevuto.
Qual è la differenza tra Varchar e Nvarchar?
La differenza chiave tra varchar e nvarchar indica come i dati vengono archiviati in un database.
• Varchar memorizza i valori ASCII e nvarchar memorizza i caratteri Unicode.
• Varchar usa un byte per carattere mentre nvarchar usa due byte per carattere.
• Varchar [(n)] memorizza i caratteri non Unicode con lunghezza variabile e Nvarchar [(n)] memorizza i caratteri Unicode con lunghezza variabile.
• Varchar può memorizzare un massimo di 8000 caratteri non Unicode e nvarchar memorizza un massimo di 4000 caratteri Unicode o non Unicode.
• È preferibile utilizzare Varchar in luoghi in cui si trovano variabili con caratteri non Unicode. Nvarchar viene utilizzato nei punti in cui sono presenti variabili con caratteri Unicode.
• La dimensione di archiviazione di varchar è il numero di byte uguale al numero di caratteri più due byte riservati per l'offset. Nvarchar utilizza un numero di byte pari al doppio del numero di caratteri più due byte riservati per l'offset.
• Tutti i moderni sistemi operativi e piattaforme di sviluppo utilizzano Unicode internamente. Pertanto, nvarchar è molto utilizzato al posto di varchar per evitare la conversione dei tipi di dati.
Riepilogo:
Nvarchar vs Varchar
Varchar e nvarchar sono tipi di dati a lunghezza variabile che utilizziamo per memorizzare diversi tipi di stringhe. Questi tipi di dati sono utili nei moderni sistemi operativi. Queste varietà di tipi di dati evitano la conversione dei dati da un tipo all' altro in base ai sistemi operativi. Pertanto, varchar e nvarchar aiutano il programmatore a identificare stringhe Unicode e non Unicode senza troppe difficoltà. Questi due tipi di dati sono molto utili nella programmazione.