Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Qual è la differenza tra VARCHAR e NVARCHAR nel server SQL - Tutorial SQL Server / T-SQL Parte 32

Varchar è un tipo di dati di carattere a lunghezza variabile che viene utilizzato per memorizzare il formato di dati non Unicode. Puoi pensare a Non-Unicode come a caratteri inglesi.

NVarchar è anche un tipo di dati di carattere a lunghezza variabile che viene utilizzato per memorizzare il formato di dati UniCode. Per i formati di dati Unicode puoi pensare ad alfabeti di lingua cinese, giapponese, coreana e araba.

Varchar può memorizzare caratteri "inglesi" e ci vuole un byte per memorizzare ogni carattere. Nvarchar può memorizzare caratteri inglesi e di altre lingue. NVarchar impiega due byte per memorizzare ogni carattere.

Creiamo due variabili e controlliamo lo spazio utilizzato da ciascuna variabile.

Declare @Variable1 VARCHAR(20)
Declare @Variable2 NVARCHAR(20)

SET @Variable1='TechBrothersIT'
SET @Variable2='TechBrothersIT'

Select datalength(@Variable1) as VarLength1, datalength(@Variable2) as VarLength2

Qual ​​è la differenza tra VARCHAR e NVARCHAR - Tutorial SQL Server

Come abbiamo dichiarare @Variable2 come NVarchar, ci è voluto il doppio dello spazio rispetto a @Variable1 che è Varchar per memorizzare i caratteri.


Creiamo una tabella con colonne di tipo dati Varchar e NVarchar e inseriamone alcune record.

Create table dbo.VarcharVsNvarchar( VarcharName Varchar(50),NVarcharName NVARCHAR(50))
insert into dbo.VarcharVsNvarchar  Values
('عامر','عامر'),
('عامر',N'عامر'),
('TechBrothersIT',N'TechBrothersIT')

Select * from dbo.VarcharVsNvarchar
go
Select DataLength(VarcharName) AS CHARNameLength,DataLength(NVarcharName) AS VarNameLength 
From dbo.VarcharVsNvarchar

Varchar VS Nvarchar in SQL Server - Tutorial TSQL

La nostra prima query Select ci ha restituito i dati. Ho notato che abbiamo alcuni dati spazzatura ????. Anche noi abbiamo definito il tipo di dati della colonna NVarchar, ha inserito la spazzatura. Per inserire i dati Unicode nella colonna del tipo Nvarchar, dobbiamo usare N con i dati come puoi vedere nel secondo inserto ( ('عامر',N'عامر')).