Difference Between Varchar and Nvarchar

DBMS is software to manage databases efficiently. An MSSQL is based on the model of relational and comes under the DBMS. The data is MSSQL stored in tables that are connected.


IT Quiz

Test your knowledge about topics related to technology

1 / 10

Who is considered as the father of computing

2 / 10

Geo-stationary satellite revolves at ā€“

3 / 10

The core idea of develop AI is bulding machines and alogrithms to

4 / 10

Which of the following AI domain attempts to extract information from spoken and written words using algorithms?

5 / 10

The main function of smart assistants like Apple Siri and Amazon Alexa is

6 / 10

Systems for differently-abled individuals is an example of

7 / 10

When a machine possesses the ability to mimic human traits like make decisions, predict the future, learn and improve on its own said to have

8 / 10

Phones that offer advanced features not typically found in cellular phones, and are called

9 / 10

Mac Operating System is developed by which company

10 / 10

Which two websites offer free e-mail services?

Your score is


A specific set of values is stored in each table. The attributes are represented by columns, while the record represents each row.Ā Ā Ā 

When the table stores value, then each column has a specific type of data. Or in simple words, the data type is hit on in each column.

When it comes to data types, varchar andĀ NvarcharĀ are two of them which are quite confusing. This article highlights the differences between varchar andĀ Nvarchar.Ā 

Varchar vsĀ NvarcharĀ 

The difference between varchar andĀ NvarcharĀ datatypeĀ is that in SQL, varchar is a data type that stores a character data set of non-Unicode of indeterminate length. On the other hand, in SQL, it is a data type to store Unicode character data with indeterminate length.Ā Ā 

Varchar vs Nvarchar

Want to save this article for later? Click the heart in the bottom right corner to save to your own articles box!

In the AQL server, varchar is a data type related to the variable characters. Memory allocation is accordingly to the characters inserted.

While using varchar, non-Unicode characters are stored. The varchar columnā€™s max size (m) parameter can range from 1 to 255 bytes.Ā Ā 

NvarcharĀ is also a data type that relates to the variable characters in SQL Server. In the database, multiple languages can be stored.

In case, other languages are used, then it will take twice a space to store an extended set of characters. While usingĀ Nvarchar, Unicode characters are used.Ā Ā Ā 

Comparison Table

Parameters of Comparison VarcharĀ  NvarcharĀ 
InterpretationIn SQL, varchar is a data type that stores a character data set of non-Unicode of indeterminate length.In SQL, Nvarchar is a data type to store Unicode character data with indeterminate length.Ā Ā 
Character data typeNon-Unicode dataUnicode data
Character size1 byte2 bytes
Maximum length8,0004,000
Storage sizeActual length (in bytes)2 times actual length (in bytes)

What is Varchar?Ā 

The varchar is a data type that stores varying length character strings that contain multibyte and single-byte characters.

In this, (R) stands for the minimum number of bytes that are reserved for the column, and m stands for the maximum size of the column.Ā Ā 

A column considered as varchar without parameters and parentheses has a reserved size of zero and a maximum size of one byte. In case placing an index on a column of varchar, then the maximum size is 254 bytes.

Character strings can also be stored that are shorter than m value butĀ not longerĀ also.Ā Ā 

It is optional to specify the minimum reserved space (R) parameter. This value can be from 0 to 255 bytes but should be less than the (m) of the varchar column.

It can default to 0 if the minimum value is not specified. So, it is necessary to specify this parameter when a user initially inserts a row with null character strings in the column.Ā Ā 

When a string is stored in a varchar column, then the actual characters are only stored. If reserved space or (R) is not specified, but some data strings are shorter than bytes of (R), some rows which are reserved for space go unused.Ā 

What isĀ Nvarchar?Ā 

TheĀ NvarcharĀ is a data type to store character data in a field of variable length. Non-Unicode characters like ASCII are stored which represents the uppercase, symbols, lowercase, and digit.Ā It is necessary to specify the max of the column.Ā Ā 

When an index is placed on aĀ NvarcharĀ column, then the maximum size is 254 bytes. Shorter character strings can be stored but not longer than the value specified. If a minimum space value is not specified, then the default value is 0 of the reserve.

It is necessary to specify the reserved parameter while initially inserting rows with data values with no or few characters in this column.

Later, it is expecting the updated data with longer values. This value generally ranges from 0 to 255 bytes but should be less than the maximum size of the column.Ā Ā 

Data can be a string of multi-byte or single-byte letters, digits, and other characters supported by the code set of databases located.Ā 

The usage ofĀ NvarcharĀ economized on space used in a table has no effect on the index size. An index which is based on the column ofĀ Nvarchar, the length of each index key is equal to maximum bytes, the columnā€™s maximum size.Ā 

Main Differences Between Varchar andĀ NvarcharĀ 

  1. Varchar is used if actual data is less than capacity and variable-length columns or data length is variable. ButĀ NvarcharĀ is used if you need Unicode support like Korean Hangul or Japanese kanji characters due to storage overhead.Ā Ā Ā 
  2. Single quotes are used to enclose varchar literals, for instance ā€˜John.ā€™ On the other hand, literals ofĀ NvarcharĀ are prefixed with N also, likeĀ Nā€™John.ā€™Ā Ā 
  3. In terms of advantages, Varchar takes less memory space due to variable length, whileĀ NvarcharĀ supports running client computers with different locales.Ā Ā 
  4. Non-Unicode characters like ASCII are stored in varchar which represents the uppercase, symbols, lowercase, and digit. But Unicode characters stored inĀ NvarcharĀ represent Greek, English, etc.Ā Ā 
  5. When it comes to disadvantages, varchar decreases the performance of a few SQL queries, whereasĀ NvarcharĀ usersā€™ extra storage space is not properly used.Ā Ā Ā 
  1. http://www.vldb.org/conf/2006/p1243-houkjar.pdf
One request?

Iā€™ve put so much effort writing this blog post to provide value to you. Itā€™ll be very helpful for me, if you consider sharing it on social media or with your friends/family. SHARING IS ā™„ļø

Leave a Comment

Your email address will not be published. Required fields are marked *