SQL Server’da Varchar ve Nvarchar Veri Tipleri Arasındaki Farklar

Herkese merhaba,

Bu başlık altında SQL Server’da Varchar ve Nvarchar veri tipleri arasındaki farkları inceleyeceğiz.

Varchar[(n)]

Temel Tanım

Unicode olmayan değişken uzunluk karakteri veri türü.
Örnek:
DECLARE @Ad AS VARCHAR(50) =’Yavuz Selim’
SELECT @Ad

Her Karakter için Gerekli Byte Sayısı

Her karakter için 1 byte yer kaplar.
Örnek:
DECLARE @Ad AS VARCHAR(50) = ‘Yavuz ve Pelin’
SELECT @Ad AS Adınız,
DATALENGTH(@Ad) AS Uzunluk
Sonuç:
Ad Uzunluk
Yavuz ve Pelin 14

İsteğe Bağlı Parametre Aralığı

İsteğe bağlı parametre değeri 1 ile 8000 arasında olabilir. Unicode olmayan maksimum karakterleri depolayabilirsiniz.

Değişken Bildiriminde veya Sütun Tanımında İsteğe Bağlı Parametre Belirtilmemişse

İsteğe bağlı parametre değeri n değişken bildiriminde veya sütun tanımında belirtilmemişse 1 olarak kabul edilir.
Örnek:
DECLARE @Ad
VARCHAR =’Yavuz Selim’
SELECT @Ad Ad ,DATALENGTH(@Ad)
Uzunluk
Sonuç :
Ad, Uzunluk
Y 1

İsteğe Bağlı Parametre Kullanırken Belirtilmiş CAST/CONVERT Fonksiyonları

Bu isteğe bağlı parametre n, CAST / CONVERT işlevlerini kullanırken belirtilmediğinde, 30 olarak kabul edilir.
Örnek:
DECLARE
@ad VARCHAR(35)=
‘Yavuz Selim ve
Pelin İstanbul Konya Artvin Türkiye’
SELECT CAST(@ad AS VARCHAR) Ad,
DATALENGTH
(CAST(@ad AS VARCHAR)) Uzunluk

Sonuç:
Ad Uzunluk
Yavuz Selim ve Pelin İstanbul  30

Hangisini Kullanmalıyım?

Sütun içinde saklanacak verilerin Unicode karakterler olmadığını biliyorsak kullanmalıyız.

Depolama Boyutu

Girilen karakterlere karşılık tanımlanan değer kadar byte alır.

NVarchar[(n)]

Temel Tanım

Unicode Değişken Boyu
karakteri veri türü. Hem Unicode olmayan hem de Unicode (yani Japonca,
Korece vb.) Karakterler depolayabilirsiniz.
Örnek:
DECLARE @Ad AS NVARCHAR(50)= ‘Pelin’
SELECT @Ad

Her Karakter için Gerekli Byte Sayısı

Unicode / Unicode olmayan karakter başına 2 byte yer kaplar.
Örnek:
DECLARE @Ad AS NVARCHAR(50)=
‘Yavuz Selim Kart’
SELECT @Ad AS Adınız,
DATALENGTH(@Ad)
AS Uzunluk
Sonuç:
Adınız Uzunluk
Yavuz Selim Kart 32

İsteğe Bağlı Parametre Aralığı

İsteğe Bağlı Parametre değeri 1 ile 4000 arasında olabilir. Unicode ya da Unicode olmayan 4000 karakteri depolayabilirsiniz.

Değişken Bildiriminde veya Sütun Tanımında İsteğe Bağlı Parametre Belirtilmemişse

İsteğe bağlı parametre değeri n değişken bildiriminde veya sütun tanımında belirtilmemişse 1 olarak kabul edilir.
Örnek:
DECLARE @Ad
NVARCHAR =’Yavuz Selim’
SELECT @Ad Ad, DATALENGTH(@Ad)
Uzunluk
Sonuç:
Ad Uzunluk
Y 2

İsteğe Bağlı Parametre Kullanırken Belirtilmiş CAST/CONVERT Fonksiyonları

CAST CONVERT işlevlerini kullanırken isteğe bağlı parametre n belirtilmediğinde, 30 olarak kabul edilir.
Örnek:
DECLARE @ad
NVARCHAR(35)=
‘Yavuz Pelin Yavuz
Pelin Yavuz Pelin
Yavuz Pelin’
SELECT CAST(@ad AS NVARCHAR) Ad,
DATALENGTH
(CAST(@ad AS NVARCHAR)) Uzunluk
Sonuç:
Ad Uzunluk
Yavuz Pelin Yavuz
Pelin Yavuz  60

Hangisini Kullanmalıyım?

Sütun içinde saklanacak verilerin Unicode karakterlere sahip olabileceğini biliyorsak kullanmalıyız.

Depolama Boyutu

Girilen karakterlere karşılık tanımlanan değerin iki katı kadar byte alır.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir