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 zmiennej. Znak w C reprezentuje typ znaku, który jest używany do przechowywania wartości ciągów, głównie znaków i liczb całkowitych zakodowanych w UTF-8. Z drugiej strony Varchar jest typem danych, który może zawierać dane dowolnego typu o nieokreślonej długości. Varchar odnosi się do typu danych pola w systemie zarządzania bazą danych. Chociaż oba mogą przechowywać wartości ciągów o maksymalnej długości 8 000 znaków, char wymaga więcej pamięci niż varchar. Z technicznego punktu widzenia oba są używane do przechowywania tych samych rodzajów danych, ale różnią się sposobem ich przechowywania i wyszukiwania. Rzućmy okiem na ich różnice w szczegółach.

Co to jest Char?

Char jest typem danych o stałej długości, który służy do przechowywania znaków innych niż Unicode, stąd nazwa (skrót od znaku). Zajmuje jeden bajt miejsca dla każdego znaku zakodowanego w postaci cyfr - tych z kodowania ASCII. Typu char można również używać 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 całkowite, znak może być podpisany lub niepodpisany. Może przechowywać podpisane wartości char w zakresie od -128 do 127 i w zależności od rozmiaru architektury, może być również niepodpisane, przechowując wartości w zakresie od 0 do 255. Gdy wartości char są przechowywane, są one odpowiednio wypełniane spacjami do określonej długości . Końcowe spacje są usuwane po ich odzyskaniu.

Na przykład - jeśli zadeklarujesz zmienną typu danych char (7), to zawsze zajmie 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 typ danych o długości od 0 do 65 535. Pole Varchar może przechowywać wartości o dowolnym rozmiarze 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 deklarowanej długości pola.

Aby zadeklarować znak zmiennej, używane jest słowo kluczowe „varchar”. Varchar zajmuje zmienne miejsce, co oznacza, że ​​użyje tylko liczby bajtów równej liczbie znaków. Pomaga uniknąć marnowania miejsca, ponieważ wykorzystuje tylko przestrzeń wymaganą do rozmiaru łańcucha. W niektórych językach programowania i systemach baz danych każda dodatkowa przestrzeń jest automatycznie usuwana z bazy danych.

Na przykład - jeśli zadeklarujesz zmienną varchar (10), użyje ona liczby bajtów równej liczbie znaków. Więc jeśli przechowujesz tylko jeden znak, to zajmie tylko jeden bajt, a jeśli przechowujesz 10 znaków, zajmie 10 bajtów, dzięki czemu unikniesz marnowania miejsca w bazie danych.

Różnica między Char i Varchar

  1. Typ danych

„Char” to typ danych o stałej długości, który służy do przechowywania ciągów znaków o stałej długości, natomiast „Varchar” to typ danych o zmiennej długości, który jest używany do przechowywania danych alfanumerycznych o zmiennej długości.

  1. Rozmiar przechowywania

Rozmiar pamięci wartości znaku jest równy maksymalnemu rozmiarowi tej kolumny, który deklarujesz podczas tworzenia tabeli. Z drugiej strony rozmiar pamięci wartości varchar to rzeczywista długość wprowadzonych danych, a nie maksymalny rozmiar dla tej kolumny.

  1. Wpisy danych

Możesz użyć char, gdy oczekuje się, że wpisy danych w kolumnie będą tego samego rozmiaru, a przeciwnie, varchar można użyć, gdy oczekuje się, że wpisy danych w kolumnie różnią się rozmiarem.

  1. Przydział pamięci

Char używa statycznej alokacji pamięci, podczas gdy varchar używa dynamicznej alokacji pamięci

  1. Długość

Długość zmiennej char może mieć dowolną wartość od 0 do 255, natomiast długość zmiennej varchar wynosi od 0 do 65 535.

  1. Podanie

Wpisy danych są zgodne w char, który 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 znaków 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.
Pobiera 1 bajt na znak do przechowywania. Zajmuje 1 bajt na znak plus 1 lub 2 dodatkowe bajty do przechowywania informacji o długości.
Rozmiar pamięci char jest taki sam, jak zadeklarowany. Rozmiar pamięci varchar zależy od określonego przechowywanego ciągu.
Wykorzystuje statyczny przydział pamięci. Wykorzystuje dynamiczną alokację pamięci.
Char należy stosować, gdy znana jest długość zmiennej. Varchar powinien być używany tylko wtedy, gdy długość zmiennej nie jest znana.
Akceptuje tylko postacie. Przyjmuje zarówno znaki, jak i cyfry.
Jest o 50 procent szybszy niż Varchar. Jest wolniejszy niż Char.
Rozmiar pamięci wartości char jest równy maksymalnemu rozmiarowi dla kolumny. Rozmiar pamięci wartości varchar jest równy rzeczywistej długości wprowadzonych danych, a nie maksymalnemu rozmiarowi kolumny.

streszczenie

  • Zarówno „Char”, jak i „Varchar” to typy danych w językach programowania i systemach baz danych, które mają wspólne cechy pod względem funkcjonalności i techniki. Różnią się one jednak znacznie pod względem sposobu ich przechowywania i wyszukiwania.
  • Podczas gdy char faktycznie odnosi się do znaku, varchar odnosi się do znaku zmiennej. 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 także 1 bajt na znak plus dodatkowe 1 lub 2 bajty do przechowywania informacji o długości. Dla char długość wynosi od 0 do 255, a dla varchar może wynosić od 0 do 65 535.
  • Ponieważ char ma stałą długość, wszelkie pozostałe miejsca na polu są wypełniane spacjami. Z drugiej strony Varchar ma zmienną długość, więc przechowuje tylko znaki, które mu przypisujesz.
  • Pozostałe znaki są uzupełniane białymi spacjami, gdy wartości są przechowywane w polach „char”, podczas gdy „varchar” nie dodaje dodatkowych spacji, gdy podajesz mniej danych niż określona długość.