Char i Varchar

Anonim

Oba są typami danych w wielu językach programowania i systemach baz danych, gdzie "char" odnosi się do postaci, a "varchar" odnosi się do zmiennej postaci. Char in C reprezentuje typ znaku, który jest używany do przechowywania wartości łańcuchów, głównie znaków zakodowanych w UTF-8 i liczb całkowitych. 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 bazami danych. Chociaż oba mogą przechowywać wartości ciągów do maksymalnej długości 8 000 znaków, znak char wymaga więcej miejsca niż varchar. Z technicznego punktu widzenia oba są używane do przechowywania tego samego rodzaju danych, ale różnią się sposobem ich przechowywania i pobierania. Rzućmy okiem na różnice w szczegółach.

Co to jest Char?

Char to typ danych o stałej długości, który jest używany do przechowywania znaków spoza Unicode, stąd nazwa (skrót od znaku). Zajmuje jeden bajt przestrzeni dla każdego znaku zakodowanego jako liczby - 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 char może być podpisany lub niepodpisany. Może on zawierać podpisane wartości char od -128 do 127, aw zależności od wielkości architektury może być również bez znaku, o wartościach od 0 do 255. Gdy wartości char są zapisane, są one prawostronnie wypełnione spacjami do określonej długości. Spacje końcowe są usuwane po ich pobraniu.

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.

Czym 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 wahającej się 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. Wielkość pola varchar może wynosić od zera do maksymalnej zadeklarowanej długości pola.

Aby zadeklarować znak zmiennej, używane jest słowo kluczowe "varchar". Varchar przyjmuje zmienną przestrzeń, co oznacza, że ​​będzie używać tylko liczby bajtów równej liczbie znaków. Pomaga w unikaniu marnowania przestrzeni, ponieważ wykorzystuje tylko przestrzeń potrzebną na rozmiar sznurka. 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. Tak więc, jeśli przechowujesz tylko jedną postać, to zajmie to tylko jeden bajt, a jeśli przechowujesz 10 znaków, zajmie to 10 bajtów, unikając marnowania 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ągu 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 magazynu

Rozmiar pamięci wartości znaku jest równy maksymalnemu rozmiarowi tej kolumny zadeklarowanej podczas tworzenia tabeli. Z drugiej strony rozmiar pamięci wartości varcharnej jest faktyczną długością wprowadzanych danych, a nie maksymalnym rozmiarem dla tej kolumny.

  1. Wpisy danych

Możesz użyć char, gdy dane w kolumnie będą miały ten sam rozmiar, a wręcz przeciwnie, varchar może być używany, gdy oczekuje się, że dane w kolumnie będą różnić się rozmiarem.

  1. Przydzielanie pamięci

Char używa alokacji pamięci statycznej, podczas gdy varchar używa dynamicznego przydzielania 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. Podanie

Wpisy danych są spójne 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. Ma 1 bajt na znak plus 1 lub 2 dodatkowe bajty do przechowywania informacji o długości.
Rozmiar przestrzeni ładunkowej jest taki sam jak zadeklarowany. Rozmiar pamięci varchar zależy od zapisanego ciągu znaków.
Używa statycznej alokacji pamięci. Korzysta z dynamicznego przydzielania pamięci.
Char powinna być używana, gdy znana jest długość zmiennej. Varchar powinien być używany tylko wtedy, gdy długość zmiennej nie jest znana.
Akceptuje tylko znaki. Przyjmuje zarówno znaki, jak i liczby.
Jest o 50 procent szybszy niż Varchar. Jest wolniejszy niż Char.
Rozmiar pamięci wartości char jest równy maksymalnemu rozmiarowi kolumny. Rozmiar magazynu wartości varchar jest równy rzeczywistej długości wprowadzanych danych, a nie maksymalny rozmiar kolumny.

streszczenie

  • Zarówno "Char", jak i "Varchar" są typami danych w językach programowania i systemach baz danych, które mają pewne wspólne cechy pod względem funkcjonalności i techniczności. Różnią się jednak znacznie od sposobu ich przechowywania i pobierania.
  • Chociaż char rzeczywiście odnosi się do postaci, varchar odnosi się do zmiennej postaci. 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 przyjmuje do 1 bajta na znak, podczas gdy varchar zajmuje do 1 bajta na znak plus dodatkowe 1 lub 2 bajty do przechowywania informacji o długości. Dla char, długość zmienia się od 0 do 255, a dla varchar może być dowolna od 0 do 65 535.
  • Ponieważ char ma stałą długość, pozostała przestrzeń w polu jest wypełniona odstępami. Z drugiej strony, Varchar ma zmienną długość, więc zawiera tylko znaki, które mu przypisujesz.
  • Pozostałe znaki są wypełnione 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ść.