Klíčový rozdíl: V databázových systémech, jako je SQL Server, Char a Varchar jsou oba datové typy, kde znak char ve skutečnosti odkazuje na znak a Varchar odkazuje na variabilní znak. Oba se používají k ukládání řetězcových typů hodnot s maximální délkou 8 000 znaků. Velikost úložiště char je stejná jako u deklarované, zatímco šestý stupeň Varchar závisí na bajtech skutečných zadaných dat.
Uveďme příklad - jestliže jsou data Char vyhlášena způsobem: deklarovat test Char (20) a test = "testování", potom test bude obsazovat nejprve 7 bajtů a odpočinek bude vyplněn prázdnými daty. Na druhou stranu, pokud jsou data Varchar deklarována způsobem: deklarujte test Varchar (20) a test = "test", pak bude zabírat pouze 7 + 2 bajty.
Char by měl být použit, pokud je známá délka proměnné, zatímco Varchar by měl být použit pouze tehdy, je-li délka neznámá. Char je rychlejší než Varchar, protože systém Varchar tráví nějaký čas, aby zjistil čas pro zjištění konce řetězce. Na druhou stranu tentokrát není v Charu zbytečná.
Srovnání mezi Char a Varcharem:
Char | Varchar | |
Plný formulář | Charakter | Variabilní znak (v kontextu s charakterem proměnné délky) |
Význam | Používá se k ukládání dat řetězce s nefixovanou pevnou délkou | Používá se k ukládání dat o řetězcích, které nemají znak Unicode, s proměnnou délkou |
Bajty použité pro ukládání | 1 bajt na znak | 1 bajt na znak a 1 nebo 2 bajty dodatečné pro uchovávání informací o délce |
aplikace | Používá se pro ukládání dat, například telefonního čísla atd. (Data jsou konzistentní.) | Používá se pro ukládání dat jako je adresa (data se značně liší) |
Stav: vstupní řetězec menší než deklarované bajty | Prostor bez jakéhokoliv znaku bude vyplněn mezerami | Prostor bez jakéhokoli znaku nebude vykreslen žádným z znaků |
Stav: vstupní řetězec více než deklarované bajty | Řetězec bude zkrácen na deklarované bajty | Řetězec bude zkrácen na deklarované bajty. |