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.