Char ve Varchar arasındaki  başlıca farklar;

  • Veritabanı uygulamalarında metinleri tutmak için kullanılan alanlardan iki tanesi Char ve Varchar dır.
  • Char veritipi, 0 ile 255 karakter içeren verileri tutabilir.
  • Varchar ise 65bine yakın karakterde veri saklayabilir.
  • Eğer bir alan için Char tanımlamış sanız, o alanda minimum değer olsa da maksimum değer saklansa da kapladığı boyut değişmez.
  • Varchar kullanırsanız sakladığınız verinin büyüklüğü kadar yer kaplar.
  • CHAR(10) ve Varchar(10) alanları farklı boyutlarda yer kaplar.
  • Char sabit uzunlukta veri tipi olarakta bilinir, Varchar ise değişken uzunlukta veri tipi olarak bilinir.
  • Devamlı benzer veya aynı verilerle çalışıyorsanız seçmeniz gereken tip Char olmalı, örneğin T.C. Kimlik numaralarının tutulduğu bir alanın tipiniz belirlemeniz gerkiyor, T.C. Kimlik numaraları 11 adet sadece sayılardan oluştuğu için Char kullanmanız uygun olacaktır.
  • Eğer tutacağınız alan değişken ise Varchar kullanmanız performans açısından uygun olacaktır.
  • Char ve Varchar saklama alanları Unicode karakterleri desteklemez.

Detaylı Açıklamalar;


Bigint: -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 arasındaki sayıları tutar. 8 baytlık yer kaplar.
Int: -2,147,483,648 ile 2,147,483,648 arasındaki sayıları tutar. fiziksel olarak 4 baytlık yer kaplar.
Smallint: -32,768 ile 32,767 arasındaki sayıları tutar. 2 baytlık yer kaplar.
Tinyint: 0 ile 255 arasındaki sayıları tutar. 1 baytlık yer kaplar.
Decimal (x,y): Boyutu 5 ile 17 byte arasında değişir. ondalıklı sayıları tutmaya yarar. İki parametre alır. İlk parametre (x) sayının kaç karakter uzunluğunda olacağını, ikinci parametre (y) ise bu karakterlerin kaçının ondalık kısım olduğunu ifade eder. Örneğin decimal(5,2) şeklinde tanımlanan bir değişken 123,45 değeri alabilir.
Numeric (x,y): Kullanımı ve özellikleri decimal ile aynıdır.
Float: Çok büyük ve çok küçük kesirli sayılar için kullanılan veri tipidir. Boyutu 4 ile 8 byte arasındadır.
Real: Float ile aynı özelliklere sahip.
Money: -922 337 203 685 47,5808 ile 922 337 203 685 477,5807 arası parasal veri tutabilir. 8 baytlık yer kaplar.
Smallmoney: -214 748,3648 ile 214 748,3647 arası parasal veri tutabilir. 4 baytlık yer kaplar.
Datetime: 1 Ocak 1753 ile 31 Aralık 9999 tarihleri arasındaki herhangi bir tarihi saatiyle birlikte tutar. 3.33 milisaniyelik bir hassasiyete sahiptir. 8 baytlık yer kaplar.
Smalldatetime : 1 Ocak 1990 ile 6 Haziran 2079 tarihleri arasındaki herhangi bir tarihi saatiyle birlikte tutar. 10 dakikalık bir hassasiyete sahiptir. 4 baytlık yer kaplar.
ANSI standartlarına uyan herhangi bir karakter 1 byte yer kaplar. Ancak Unicode karakterler ise hafızada 2 byte yer kaplar. Unicode karakterler farklı dillere özgü karakterlerdir.Türkçe’ de kullandığımız ç,ğ,ş,ö gibi harfler bizim dilimize özgüdür ve ANSI standartlarında yer almamaktadır.
Char(n): Boyutu1 ile 8000 arasında değişir. Maksimum 8000 karakter tutar.
Nchar(n): Boyutu 2 ile 8000 arasında değişir. Maksimum 4000 karakter tutar.
Varchar(n): Boyutu1 ile 8000 arasında değişir. Maksimum 8000 karakter tutar.
Nvarchar(n): Boyutu 2 ile 8000 arasında değişir. Maksimum 4000 karakter tutar.
Nvarchar(MAX): Maksimum 2 gigabyte (536.870.912 karakter) veri saklar.
Text: Maksimum 2 gigabyte (1.073.741.824 karakter) veri saklar.
Ntext: Maksimum 2 gigabyte (536.870.912 karakter) veri saklar.
Örnek olarak char(10) olarak tanımladığımız değişkene “ali” değerini de yazsak “mehmet” değerini de yazsak kapladığı alan 10 byte dır.Fakat varchar(10) olarak tanımladığımız bir değişkene “ali” değerini yazarsak 3 byte “mehmet” değerini yazarsak 6 byte yer kaplar. yani veriye göre kapladığı alan değişir. char ve varchar arasındaki fark budur.
nvarchar(10) olarak tanımladığımız değişkene “ali” değerini yazarsak kaç byte yer kaplar “mehmet” değerini yazarsak kaç byte yer kaplar?
Nvarchar ile varchar arasındaki fark birisi Türkçe karakterleri desteklerken diğeri desteklemez.
Nvarchar(5) olarak tanımladığımız bir değişkene “Mehmet” değerini atarsak ne olur.
Binary(n): Boyutu 1 ile 8000 byte arasında değişir. Sabit boyutta binary veri tutmak için kullanılır.
Varbinary(n): Boyutu 1 ile 8000 byte arasında değişir. Değişken boyutta binary veri tutmak için kullanılır.
Varbinary(MAX): Boyutu maksimum 2 gigabyte tır. Değişken boyutta binary veri tutmak için kullanılır.
Image: Boyutu maksimum 2 gigabyte tır. Sadece resim dosyaları için değildir tüm dosyalar tutulabilir.

 

 


Bir cevap yazın

E-posta hesabınız yayımlanmayacak.