Char a Varchar

Anonim

Oba jsou datové typy v mnoha programovacích jazycích a databázových systémech, kde 'char' označuje znak a 'varchar' označuje proměnný znak. Char v C představuje typ znaku, který se používá k ukládání hodnot řetězců, většinou kódovaných znaků UTF-8 a celých čísel. Varchar, na druhé straně, je datový typ, který může obsahovat data jakéhokoli typu neurčité délky. Varchar odkazuje na datový typ pole v systému správy databáze. Zatímco oba mohou ukládat řetězcové hodnoty až do maximální délky 8000 znaků, znak vyžaduje více úložiště než varchar. Technicky se oba používají k ukládání stejných typů dat, ale liší se způsobem, jakým jsou uloženy a načteny. Podívejme se na jejich rozdíly v detailech.

Co je Char?

Char je datový typ s pevnou délkou, který se používá k ukládání znaků, které nejsou znakem Unicode, a tedy i název (zkratka pro znak). Zabírá jeden bajt prostoru pro každou postavu, která je kódována jako čísla - ty z kódování ASCII. Typ znaku lze také použít k deklarování malých celých čísel. Chcete-li deklarovat proměnnou znaků, použije se klíčové slovo "char", což znamená, že jeden znak je uložen v jednom bajtu.

Stejně jako typy celých čísel, znak může být podepsán nebo nepodepsán. Může obsahovat podepsané znakové hodnoty v rozmezí od -128 do 127 a v závislosti na architektonické velikosti může být také nepodepsané, přičemž hodnoty jsou v rozsahu od 0 do 255. Když jsou uloženy char charakterizované hodnoty, jsou vpravo polstrovány mezerami na zadanou délku. Zadní mezery jsou odstraněny při jejich načtení.

Například - pokud deklarujete proměnnou datového typu char (7), pak bude vždy trvat 7 bajtů dat bez ohledu na to, zda ukládáte 1 znak nebo 7 znaků, což znamená, že ve sloupci můžete uložit maximálně 7 znaků.

Co je Varchar?

Varchar, jak naznačuje název, je datový typ s proměnnou délkou, který může obsahovat jakýkoli typ dat s délkou od 0 do 65 535. Pole Varchar může ukládat hodnoty libovolné velikosti až do určitého limitu v závislosti na databázi. Lze jej definovat buď v programovacích jazycích, nebo na úrovni databáze. Velikost pole varchar může být cokoli od nuly po maximální deklarovanou délku pole.

Chcete-li deklarovat znak proměnné, použije se klíčové slovo "varchar". Varchar má variabilní prostor, což znamená, že bude používat pouze počet bajtů rovný počtu znaků. Pomáhá při vyhýbání se ztrátě prostoru, protože využívá pouze prostor potřebný pro velikost řetězce. V některých programovacích jazycích a databázových systémech je z databáze odstraněn libovolný další prostor.

Například - pokud deklarujete proměnnou varchar (10), použije se počet bajtů rovný počtu znaků. Pokud ukládáte pouze jeden znak, pak bude trvat pouze jeden bajt a pokud ukládáte 10 znaků, bude to trvat 10 bajtů, čímž se zabrání plýtvání databázovým prostorem.

Rozdíl mezi Char a Varchar

  1. Datový typ

'Char' je datový typ s pevnou délkou, který se používá k ukládání hodnoty řetězcové hodnoty fixní délky, zatímco "Varchar" je datový typ s proměnnou délkou, který se používá k ukládání alfanumerických dat s proměnnou délkou.

  1. Velikost úložiště

Velikost úložiště hodnoty znaku se rovná maximální velikosti tohoto sloupce, který deklarujete při vytváření tabulky. Naproti tomu velikost úložiště varchar je skutečná délka zadaných dat, nikoli maximální velikost pro tento sloupec.

  1. Záznamy dat

Při zadávání dat v sloupci lze očekávat stejnou velikost, zatímco naopak varchar lze použít, když se očekává, že data v sloupci se budou lišit.

  1. Přidělení paměti

Char používá statické přidělení paměti, zatímco varchar používá dynamickou alokaci paměti

  1. Délka

Délka znakové proměnné může mít libovolnou hodnotu od 0 do 255, zatímco délka proměnné varchar se pohybuje od 0 do 65 535.

  1. aplikace

Zadávání dat je konzistentní v char, které se používá pro ukládání dat jako jsou telefonní čísla, zatímco varchar se používá pro ukládání různých dat, jako jsou adresy.

Char vs Varchar

Char Varchar
Používá se k uložení hodnoty řetězce znaků s pevnou délkou. Používá se k ukládání alfanumerických dat s proměnnou délkou.
Délka se pohybuje od 0 do 255. Délka se pohybuje od 0 do 65 535.
Vezme 1 bajt na znak pro uložení. Vezme 1 bajt na znak a 1 nebo 2 extra bajty pro ukládání informací o délce.
Velikost úložiště char je stejná jako prohlášená. Velikost úložiště varchar závisí na uloženém specifickém řetězci.
Používá statické přidělení paměti. Používá dynamickou alokaci paměti.
Char je třeba použít, když je známa délka proměnné. Varchar by měl být použit pouze v případě, že délka proměnné není známá.
Přijme pouze znaky. Přijme znaky i čísla.
Je o 50 procent rychlejší než Varchar. Je pomalejší než Char.
Velikost úložiště char hodnoty se rovná maximální velikosti sloupce. Velikost úložiště varchar se rovná skutečné délce zadaných dat, nikoliv maximální velikost sloupce.

souhrn

  • Jak "Char", tak i "Varchar" jsou datové typy v programovacích jazycích a databázových systémech, které sdílejí některé společné rysy z hlediska funkčnosti a technickosti. Jsou však značně odlišné od způsobu, jakým jsou uloženy a načteny.
  • Zatímco char se ve skutečnosti vztahuje na znak, varchar odkazuje na proměnný znak. Jak název napovídá, char je datový typ s pevnou délkou, zatímco varchar je datový typ s proměnnou délkou.
  • Char trvá až 1 bajt na znak, zatímco varchar také zabere až 1 bajt na znak a navíc 1 nebo 2 bajty pro ukládání informací o délce. Pro char, délka se pohybuje od 0 do 255 a pro varchar, může to být cokoliv mezi 0 a 65 535.
  • Vzhledem k tomu, že char má pevnou délku, je veškerý zbývající prostor v poli vyplněn polotovary. Varchar je naopak variabilní délkou, takže drží pouze ty znaky, které mu přiřadíte.
  • Zbývající znaky jsou vyplněny bílými mezerami, pokud jsou hodnoty uloženy v polích "char", zatímco "varchar" nepřidává žádné další mezery, pokud zadáte méně dat než zadaná délka.