Różnica między char i varchar

Różnica między char i varchar

Oba są typami danych w wielu językach programowania i systemach baz danych, w których „char” odnosi się do znaku, a „varchar” odnosi się do znaku zmiennego. Char in c reprezentuje typ znaków używany do przechowywania wartości ciągów, głównie znaki i liczby całkowite UTF-8. Z drugiej strony Varchar jest typem danych, który może zawierać dane o dowolnym rodzaju nieokreślonej długości. Varchar odnosi się do rodzaju danych w polu w systemie zarządzania bazą danych. Chociaż oba mogą przechowywać wartości ciągów do maksymalnej długości 8000 znaków, char, wymaga większej pamięci niż varchar. Technicznie oba są używane do przechowywania tych samych rodzajów danych, ale różnią się sposobem przechowywania i pobierania. Rzućmy okiem na ich różnice.

Co to jest char?

Char to typ danych o stałej długości, który służy do przechowywania znaków nie-uniicode, stąd nazwa (skrót od znaku). Zajmuje jeden bajt przestrzeni dla każdego znaku kodowanego jako liczby - te z kodowania ASCII. Typ zwęglenia można również użyć do deklarowania małych liczb całkowitych. Aby zadeklarować zmienną znakową, używane jest słowo kluczowe „char”, co oznacza, że ​​pojedynczy znak jest przechowywany w jednym bajcie.

Podobnie jak typy liczb całkowitych, Char może być podpisany lub niepodpisany. Może pomieścić podpisane wartości charytatywne w zakresie od -128 do 127 i w zależności od wielkości architektonicznej, może być również niepodpisany, utrzymując wartości od 0 do 255. Gdy wartości zwęglenia są przechowywane, są one prawe z przestrzeniami do określonej długości. Przestrzenie spływu są usuwane po ich odzyskaniu.

Na przykład - jeśli zadeklarujesz zmienną typu danych (7), zawsze będzie on zawsze wymagał 7 bajtów danych niezależnie od tego, czy przechowujesz 1 znak, czy 7 znaków, co oznacza, że ​​możesz przechowywać maksymalnie 7 znaków w kolumnie.

Co to jest varchar?

Varchar, jak sama nazwa wskazuje, jest typem danych o zmiennej długości, który może zawierać dowolny rodzaj danych o długości od 0 do 65 535. Pole varchar może przechowywać wartości dowolnego rozmiaru do określonego limitu, w zależności od bazy danych. Można go zdefiniować w językach programowania lub na poziomie bazy danych. Rozmiar pola varchar może wynosić od zera do maksymalnej zadeklarowanej długości pola.

Aby zadeklarować znak zmienny, używane jest słowo kluczowe „varchar”. Varchar przyjmuje zmienną przestrzeń, co oznacza, że ​​użyje tylko liczby bajtów równych liczbie znaków. Pomaga uniknąć marnowania przestrzeni, ponieważ wykorzystuje tylko przestrzeń wymaganą dla wielkości sznurka. W niektórych językach programowania i systemach baz danych każde dodatkowe miejsce jest usuwane automatycznie z bazy danych.

Na przykład - jeśli zadeklarujesz zmienną varchar (10), użyje liczby bajtów równych liczbie znaków. Tak więc, jeśli przechowujesz tylko jedną postać, zajmie to tylko jeden bajt, a jeśli przechowujesz 10 znaków, zajmie to 10 bajtów, unikając w ten sposób marnotrawstwa przestrzeni bazy danych.

Różnica między char i varchar

  1. Typ danych

„Char” jest typem danych o stałej długości, który służy do przechowywania wartości ciągów znaków o stałej długości, podczas gdy „varchar” jest typem danych o zmiennej długości, który jest używany do przechowywania danych alfanumerycznych o zmiennej długości.

  1. Rozmiar przechowywania

Rozmiar przechowywania wartości znaku jest równy maksymalnej wielkości tej kolumny, którą deklarujesz podczas tworzenia tabeli. Z drugiej strony wielkość pamięci wartości varchar jest rzeczywistą długości wprowadzonych danych, a nie maksymalny rozmiar dla tej kolumny.

  1. Wpisy danych

Możesz użyć char, gdy zapisy danych w kolumnie powinny mieć ten sam rozmiar, podczas gdy wręcz przeciwnie, varchar można użyć, gdy zapisy danych w kolumnie powinny się różnić.

  1. Alokacja pamięci

Char używa alokacji pamięci statycznej, podczas gdy Varchar używa dynamicznego alokacji pamięci

  1. Długość

Długość zmiennej Char może mieć dowolną wartość od 0 do 255, podczas gdy długość zmiennej Varchar wynosi od 0 do 65 535.

  1. Aplikacja

Wpisy danych są spójne w Char, które służy do przechowywania danych takich jak numery telefonów, podczas gdy Varchar służy do przechowywania różnych danych, takich jak adresy.

Char vs. Varchar

Zwęglać Varchar
Służy do przechowywania wartości ciągu o stałej długości. Służy do przechowywania danych alfanumerycznych o zmiennej długości.
Długość waha się od 0 do 255. Długość waha się od 0 do 65 535.
Wymaga 1 bajtu na znak do przechowywania. Zajmuje 1 bajt na znak plus 1 lub 2 dodatkowe bajty do przechowywania informacji o długości.
Rozmiar magazynowania char jest taki sam, jak zadeklarowano. Rozmiar magazynowania Varchar zależy od zapisanego ciągu.
Używa statycznego alokacji pamięci. Używa dynamicznego alokacji pamięci.
Karb należy użyć, gdy znana jest długość zmiennej. Varchar powinien być używany tylko wtedy, gdy długość zmiennej nie jest znana.
Akceptuje tylko znaki. Akceptuje zarówno znaki, jak i liczby.
Jest 50 procent szybciej niż Varchar. Jest wolniejszy niż Char.
Rozmiar przechowywania wartości charytatywnej jest równy maksymalnej wielkości dla kolumny. Rozmiar pamięci wartości varchar jest równy rzeczywistej długości wprowadzonych danych, a nie maksymalny rozmiar dla kolumny.

Streszczenie

  • Zarówno „char”, jak i „varchar” to typy danych w językach programowania i systemach baz danych, które mają niektóre wspólne cechy pod względem funkcjonalności i technicznej. Różnią się jednak znacznie podobnie jak sposób przechowywania i pobierania.
  • Podczas gdy Char faktycznie odnosi się do charakteru, Varchar odnosi się do charakteru zmiennego. Jak sama nazwa wskazuje, Char jest typem danych o stałej długości, podczas gdy Varchar jest typem danych o zmiennej długości.
  • Char zajmuje do 1 bajtu na znak, podczas gdy Varchar zajmuje również do 1 bajtu na znak plus dodatkowe 1 lub 2 bajty do przechowywania informacji o długości. W przypadku Char długość waha się od 0 do 255, a dla Varchar może być wszystko między 0 a 65 535.
  • Ponieważ char jest o stałej długości, każda pozostała przestrzeń na polu jest wyściełana. Z drugiej strony Varchar jest zmiennej długości, więc utrzymuje tylko znaki, które przypisujesz.
  • Pozostałe znaki są wyściełane białymi przestrzeniami, gdy wartości są przechowywane na polach „char”, podczas gdy „varchar” nie dodaje dodatkowych przestrzeni, gdy dostarczasz mniej danych niż określona długość.