SQL VARCHAR Vs NVARCHAR Datatype

In SQL Server, the data types VARCHAR and NVARCHAR exist.

The primary distinction between varchar and narchar is that NVARCHAR is used to store Unicode characters, whereas VARCHAR is used to store non-Unicode characters.

In varchar, data is stored in 1 byte per character, whereas in nvarchar, it is stored in 2 bytes per character.

Varchar supports up to 8000 characters in field definition, while nvarchar supports up to 4000 characters.


SQL VARCHAR Datatype

VARCHAR is an AQL Server data type that refers to variable characters.

VARCHAR is used to store non-Unicode characters.

In VARCHAR, memory is allocated based on the characters inserted.

Example: A table with 2 VARCHAR columns.

CREATE TABLE Varyingchar
( 
  Id INT IDENTITY, 
  FullName VARCHAR(100),
  Address VARCHAR(250)
);
GO  

INSERT INTO Varyingchar VALUES (1,'Smithi', '4939 Conifer Drive, Seattle');  
INSERT INTO Varyingchar VALUES (2,'Jacquiline', '456 Olen Thomas Drive , Texas');  
INSERT INTO Varyingchar VALUES (3'Jersy', '366 Archwood Avenue, Cheyenne');


SELECT * FROM DemoTable;

Output: The output of above query is

Id FullName Address
1 Smithi 3052 Conifer Drive, Seattle
2Jacquile 456 Olen Thomas Drive, Texas
3 Jersy 366 Archwood Avenue, Cheyenne

SQL NVARCHAR Datatype

NVARCHAR is a SQL Server data type that refers to variable characters.

NVARCHAR is used to store Unicode characters.

In a data base, several languages can be kept. If other languages are utilised, NVARCHAR will require double the amount of space to store an extended set of characters.

Example: A table with 2 NVARCHAR columns.

CREATE TABLE Person
( 
  Id INT IDENTITY, 
  FullName NVARCHAR(100),
  Address NVARCHAR(250)
);                        
GO  

INSERT INTO Person VALUES (1,'Harold ', '4893 Archwood avenue,Seattle, Washington');  
INSERT INTO Person VALUES (2,'Wilson', '4450 Payne Street, Spring Lake, London'); 
INSERT INTO Person VALUES ('3,'Taylor', NULL); 
GO  

SELECT * FROM DemoTable;

Output: The output of nvarchar datatype is

Id FullName Address
1 Harold 4893 Archwood avenue,Seattle, Washington
2 Wilson 4450 Payne Street, Spring Lake, Londontd>
3 Taylor NULL

SQL Differnce Between VARCHAR AND NVARCHAR DATA TYPE

The main differences between varchar & nvarchar points are tabulated:-

VARCHAR NVARCHAR
Variable character (VARCHAR) is a term that refers to the ability to change the appearance of a character. NVARCHAR is an acronym for National Varying Character.
VARCHAR is a non-Unicode character data type with an 8,000-character maximum length. NVARCHAR is a Unicode character data type that may hold up to 4,000 characters in length.
VARCHAR literals, such as 'John,' are enclosed in single quotes. NVARCHAR literals are also prefixed with N, as in N'John.'
Each character in the VARCHAR data type takes up one byte. Each character in NVARCHAR requires two bytes of storage, making NVARCHAR twice as expensive as VARCHAR.
If you give the wrong data type, an index can fail. For example, in SQL Server, if you have an index over a VARCHAR column and present it as a Unicode String, MSSQL Server will not use the index. No index require.
In varchar, memory allocation is equal to the amount of characters inputted plus two bytes for offset. Memory allocation in nvarchar is twice the number of characters inserted + additional bytes for offset.
When storing Unicode characters in a column or variable, we utilise varchar. If a column or variable contains non-Unicode characters, we use nvarchar.
If the valve n of the optional parameter is not provided in the variable declaration or column definition, it is assumed to be 1 for varchar. If the value n of the optional parameter is not provided in the variable declaration or column definition, it is assumed to be 2 for nvarchar.
In Varchar, we can only write ASCII values. Only 256 characters can be represented by ASCII values. Small a-z, numbers 0–9, similar to Capital A-Z. We can write ASCII values and special characters in NVarchar.