varchar ve nvarchar arasındaki fark


Merhaba arkadaşlar bugün sizlere iş görüşmesinde bile karşıma çıkan bir konudan bahsetmek istiyorum. varchar ve nvarchar arasındaki fark nedir? Şimdi size kısa bir şekilde bu konuyu aktaracağım.


varchar sadece Unicode olmayan ASCII karakterlerleri tutmaktadır. ASCII karakterlerin tabloda tutulması için bir karakter için 1 byte'lık alan gerekmektedir.

nvarchar'da ise multilingual (çok dilli) Unicode karakterleri tutmaktadır.  Unicode karakterlerin hafızada tutulması için bir karakter için 2 byte'lık alan gerekmektedir. Eğer yazacağınız programda birden fazla dil desteği verecekseniz. nvarchar tipini kullanmanızı tavsiye ederim. 

Bu arada bu iki tipte güzel bir tarafta şudur; Char gibi bütün alanı kullanmaz sadece içerisinde kullandığı alan kadar kaplama yapar.

Örnek;

DECLARE @Charx Char(30) = 'Deneme', 
        @VarCharx VarChar(30) = 'Deneme',
        @NVarCharx NVarChar(30) = 'Deneme'

 SELECT DATALENGTH(@Charx) Charx, 
        DATALENGTH(@VarCharx) VarCharx,  
        DATALENGTH(@NVarCharx) NVarCharx



Çıktıdan da görebileceğiniz gibi char bütün alanı kullanmaktadır. varchar sadece 1 byte'lık alanı kullanmaktadır ve son olarak nvarchar ise multilingual olduğu için 2 byte'lık alan kaplamaktadır. Hangisini kullanmak size ve projenizin boyutuna bağlı herkese kolay gelsin...

İyi Çalışmalar
Aslı YILMAZ DEMİRBAŞ

Yorumlar

Bu blogdaki popüler yayınlar

Android Geliştirme Ortamı Kurulumu

C# ile Progress Bar ve Timer Kullanımı