varchar ile nvarchar Arasındaki Fark

0
361

Anahtar fark: hem varchar hem nvarchar veri tipidir. varchar ASCII veri saklar, nvarchar ise Unicode veri saklar.

Veri tipleri veri formlarını tanımlamakta çok önemli bir yer tutar. Verinin saklanmasında doğru veri tipini belirlemek önemlidir. Basitçe söylemek gerekirse varchar sütunda tutulan karakter sayısı kadar bellekte byte işgal eder. non-Unicode olmayan karakterler saklanacağı zaman varchar kullanılır. Karakter sayısı kadar bellekte yer ayırır. Örneğin varchar(30) eğer herhangi bir data yoksa sadece 0 yer işgal eder, fakat mesela 20 karakterlik bir veri girilirse o zaman 20 karakterlik bellek ayrılır.

varchar ile nvarchar Arasındaki Fark

nvarchar da varchar ile hemen hemen aynıdır. Fakat nvarchar Unicode karakterlerin saklanmasında kullanılır. Dolayısıyla farklı dildeki verileri saklamayı sağlar. Genelde nvarchar varchar’a tercih edilir çünkü nvarchar şifreleme dönüşümleri gerektirmez.

nvarchar herhangi bir Unicode verisini saklayabilir. varchar ise sadece 8-bit kod sayfası (code page) ile sınırlıdır. Bazı insanlar varchar’ı daha az yer tuttuğu için kullanırlar. Aslında bu doğru bir yaklaşım değildir. Kod sayfası, karakter seti uyumsuzlukları çok can sıkıcı şeylerdir ve Unicode bu codepage problemlerinin ilacıdır. Her tarafta ucuz disk ve bellekler ile günümüzde code page sorunlarıyla uğraşmaya çok gerek yoktur artık aslında.

Bütün modern işletim sistemleri ve geliştirme platformları içerde Unicode kullanır. varchar yerine nvarchar kullanarak veritabanına yazacağınız ya da veritabanından okuyacağınız zaman şifreleme dönüşümlerinden kurtulabilirsiniz. Dönüştürme işlemleri zaman alır ve hatalara açıktır.

Sadece ASCII kullanan bir uygulama ile arayüz oluşturuyorsanız veritabanında Unicode kullanmanız tavsiye edilir. İşletim sistemi ve veritabanı algoritmaları Unicode ile daha iyi çalışır. Unicode diğer sistemlerle etkileşime girerken dönüştürme problemleri yaşamaz.

varchar ile nvarchar Arasındaki Fark

varchar ile nvarchar arasındaki fark özetlenecek olursa;

varchar: Değişken uzunlukta, non-Unicode karakter verisi. Database karakter ailesi verinin tutulduğu hangi codepage’in kullanıcılacağına karar verir.

nvarchar: Değişken uzunlukta, Unicode karakter verisi. Karşılaştırma için database karakter ailesine bağlıdır. nvarchar ile örneğin kore, japon, çin alfabesindeki karakterleri de saklayabilirsiniz.

varchar kullandığınızda her bir karakter için 1 byte yer kaplar, nvarchar’da ise her bir karakter için 2 byte yer kaplar.

PAYLAŞ

Sizin de söyleyecekleriniz varsa lütfen yazın