Char ve Varchar Arasındaki Fark

Her ikisi de 'char' karakterini ve 'varchar' değişken karakteri ifade eden birçok programlama dilinde ve veritabanı sistemindeki veri tipleridir. C harfindeki karakter, çoğunlukla UTF-8 kodlu karakterler ve tamsayılar olmak üzere dize değerlerini depolamak için kullanılan karakter türünü temsil eder. Öte yandan Varchar, herhangi bir belirsiz uzunlukta veri içerebilen bir veri türüdür. Varchar, veritabanı yönetim sistemindeki bir alanın veri türünü ifade eder. Her ikisi de maksimum 8.000 karakter uzunluğundaki dize değerlerini saklayabilirken, char varchar'dan daha fazla depolama alanı gerektirir. Teknik olarak, her ikisi de aynı tür verileri depolamak için kullanılır, ancak depolanma ve alınma şekilleri bakımından farklılık gösterir. Farklılıklarına ayrıntılı bir göz atalım.

Char nedir?

Char, Unicode olmayan karakterleri, dolayısıyla adı (karakter kısaltması) saklamak için kullanılan sabit uzunluklu bir veri türüdür. Sayı olarak kodlanan her karakter için (ASCII kodlamasından) bir bayt alan kaplar. Karakter türü, küçük tamsayıları bildirmek için de kullanılabilir. Bir karakter değişkeni bildirmek için, 'char' anahtar kelimesi kullanılır, yani tek bir karakter bir baytta depolanır.

Tamsayı türleri gibi, char da imzalı veya imzasız olabilir. -128 ila 127 arasında değişen imzalı karakterleri tutabilir ve mimari boyuta bağlı olarak, 0 ile 255 arasında değişen değerleri de tutarak imzasız olabilir. Karakter değerleri saklandığında, belirtilen uzunluğa sahip boşluklarla sağa doğru doldurulur . Sondaki boşluklar alındıklarında kaldırılır.

Örneğin, bir char (7) veri türü değişkeni bildirirseniz, 1 karakter veya 7 karakter depolamanızdan bağımsız olarak her zaman 7 bayt veri alır, bu da sütuna maksimum 7 karakter depolayabileceğiniz anlamına gelir.

Varchar nedir?

Varchar, adından da anlaşılacağı gibi, uzunluğu 0 ila 65,535 arasında değişen herhangi bir veri türü içerebilen değişken uzunlukta bir veri türüdür. Varchar alanı, veritabanına bağlı olarak belirli bir sınıra kadar herhangi bir boyuttaki değerleri saklayabilir. Programlama dillerinde veya veritabanı düzeyinde tanımlanabilir. Varchar alanının boyutu sıfırdan beyan edilen maksimum alan uzunluğuna kadar herhangi bir şey olabilir.

Değişken karakter bildirmek için 'varchar' anahtar sözcüğü kullanılır. Varchar değişken bir alan kaplar, yani sadece karakter sayısına eşit bayt sayısını kullanır. Sadece ipin boyutu için gerekli alanı kullandığı için alan israfını önlemeye yardımcı olur. Bazı programlama dillerinde ve veritabanı sistemlerinde, fazladan alan otomatik olarak veritabanından kaldırılır.

Örneğin - bir varchar (10) değişkeni bildirirseniz, karakter sayısına eşit bayt sayısını kullanır. Yani, sadece bir karakter saklıyorsanız, o zaman sadece bir bayt alır ve 10 karakter saklıyorsanız, 10 bayt alır, böylece veritabanı alanının boşa harcanmasını önler.

Char ve Varchar arasındaki fark

  1. Veri tipi

'Char', sabit uzunluktaki karakter dizesi değerini saklamak için kullanılan sabit uzunluklu bir veri türüdür, 'Varchar' değişken uzunluktaki alfasayısal verileri depolamak için kullanılan değişken uzunluklu bir veri türüdür..

  1. Depolama boyutu

Karakter değerinin depolama boyutu, tablo oluştururken bildirdiğiniz bu sütunun maksimum boyutuna eşittir. Öte yandan, varchar değerinin depolama boyutu, bu sütun için maksimum boyut değil, girilen verilerin gerçek uzunluğudur.

  1. Veri Girişleri

Bir sütundaki veri girişlerinin aynı boyutta olması beklendiğinde char kullanabilirsiniz, aksine bir sütundaki veri girişlerinin boyutunun değişmesi beklendiğinde varchar kullanılabilir.

  1. Bellek Ayırma

Char statik bellek ayırmayı kullanırken varchar dinamik bellek ayırmayı kullanır

  1. uzunluk

Karakter değişkeninin uzunluğu 0 ile 255 arasında herhangi bir değerde olabilirken, değişken değişkeninin uzunluğu 0 ile 65,535 arasında değişir.

  1. Uygulama

Veri girişleri telefon numaraları gibi verileri depolamak için kullanılan karakterde tutarlıdır, oysa adresler gibi değişken verileri depolamak için varchar kullanılır..

Char ve Varchar

kömür Varchar
Sabit uzunlukta karakter dizesi değerini saklamak için kullanılır. Değişken uzunlukta alfasayısal verileri saklamak için kullanılır.
Uzunluk 0 ila 255 arasında değişir. Uzunluk 0 ila 65,535 arasında değişir.
Depolama için karakter başına 1 bayt alır. Karakter başına 1 bayt artı uzunluk bilgilerini depolamak için 1 veya 2 ekstra bayt alır.
Karakterlerin depolama boyutu beyan edilenle aynı. Varchar'ın depolama boyutu, depolanan belirli dizeye bağlıdır.
Statik bellek ayırmayı kullanır. Dinamik bellek ayırma kullanır.
Değişkenin uzunluğu bilindiğinde karakter kullanılmalıdır.. Varchar sadece değişkenin uzunluğu bilinmediğinde kullanılmalıdır.
Yalnızca karakterleri kabul eder. Hem karakterleri hem de sayıları kabul eder.
Varchar'dan yüzde 50 daha hızlı. Char'dan daha yavaş.
Karakter değerinin depolama boyutu sütun için maksimum boyuta eşit. Varchar değerinin depolama boyutu, sütun için maksimum boyuta değil, girilen verinin gerçek uzunluğuna eşittir.

özet

  • Hem 'Char' hem de 'Varchar', programlama dillerinde ve veritabanı sistemlerinde, işlevsellik ve teknik açıdan bazı ortak özellikleri paylaşan veri türleridir. Bununla birlikte, depolanma ve alınma şekilleri gibi önemli ölçüde farklılık gösterirler..
  • Char aslında karaktere işaret ederken, varchar değişken karaktere işaret eder. Adından da anlaşılacağı gibi, char sabit uzunluklu bir veri türüdür, varchar değişken uzunluklu bir veri türüdür.
  • Karakter başına karakter 1 bayt alırken, varchar karakter başına 1 bayta ve uzunluk bilgisini saklamak için ekstra 1 veya 2 bayta kadar sürer. Karakter için uzunluk 0 ile 255 arasında değişir ve varchar için 0 ile 65.535 arasında herhangi bir şey olabilir.
  • Karakter uzunluğu sabit olduğundan, alandaki kalan boşluk boşluklarla doldurulur. Öte yandan Varchar değişken uzunluktadır, bu nedenle yalnızca ona atadığınız karakterleri tutar.
  • Değerler 'char' alanlarında saklandığında kalan karakterler beyaz boşluklarla doldurulurken, belirtilen uzunluktan daha az veri sağladığınızda 'varchar' fazladan boşluk eklemez.