Obe sta tipi podatkov v mnogih programskih jezikih in sistemih baz podatkov, kjer se 'char' nanaša na znak, 'varchar' pa na spremenljiv znak. Char in C predstavlja tip znaka, ki se uporablja za shranjevanje niza vrednosti, večinoma UTF-8 kodiranih znakov in celih števil. Varchar je na drugi strani vrsta podatkov, ki lahko vsebuje podatke poljubne vrste nedoločene dolžine. Varchar se nanaša na podatkovni tip polja v sistemu upravljanja podatkovnih baz. Medtem ko oba lahko shranita niza vrednosti do največ 8000 znakov, char zahteva več prostora za shranjevanje kot varchar. Tehnično se oba uporabljata za shranjevanje istih vrst podatkov, vendar se razlikujeta v načinu shranjevanja in pridobivanja podatkov. Poglejmo podrobno njihove razlike.
Char je vrsta podatkov s fiksno dolžino, ki se uporablja za shranjevanje znakov, ki niso Unicode, od tod tudi ime (kratko za znak). Zaseda en bajt prostora za vsak znak, ki je kodiran kot številke - tisti iz ASCII kodiranja. Vrsta char se lahko uporablja tudi za razglasitev majhnih celih števil. Za razglasitev spremenljivke znakov se uporablja ključna beseda 'char', kar pomeni, da je en znak shranjen v enem bajtu.
Tako kot celoštevilne vrste je lahko tudi char podpisan ali nepodpisan. Vsebuje podpisane vrednosti char, ki segajo od -128 do 127, odvisno od arhitekturne velikosti pa se lahko tudi nepodpišejo, pri čemer imajo vrednosti od 0 do 255. Ko so shranjene vrednosti char, so nalepljene z razmiki z desno do določene dolžine . Zadnji presledki se odstranijo, ko jih najdete.
Na primer - če prijavite spremenljivko podatkov tipa char (7), bo ta trajala vedno 7 bajtov podatkov, ne glede na to, ali shranjujete 1 znak ali 7 znakov, kar pomeni, da lahko v stolpec shranite največ 7 znakov.
Varchar, kot že ime pove, je vrsta podatkov s spremenljivo dolžino, ki lahko vsebuje katero koli vrsto podatkov z dolžino od 0 do 65,535. Varchar polje lahko shrani vrednosti katere koli velikosti do določene meje, odvisno od baze podatkov. Določimo ga lahko v programskih jezikih ali na ravni baze podatkov. Velikost polja varchar je lahko od nič do največje deklarirane dolžine polja.
Za razglasitev spremenljivega znaka se uporabi ključna beseda 'varchar'. Varchar zavzame spremenljiv prostor, kar pomeni, da bo uporabil le toliko bajtov, ki je enako številu znakov. Pomaga pri izogibanju zapravljanju prostora, saj le porabi prostor, potreben za velikost vrvice. V nekaterih programskih jezikih in sistemih baz podatkov se dodatni prostor samodejno odstrani iz baze.
Na primer - če prijavite spremenljivko varchar (10), bo uporabljeno število bajtov ustrezalo številu znakov. Če torej shranjujete samo en znak, bo to trajalo le en bajt in če shranjujete 10 znakov, bo trajalo 10 bajtov, s čimer se boste izognili zapravljanju prostora baze podatkov.
'Char' je vrsta podatkov s fiksno dolžino, ki se uporablja za shranjevanje znakovnih nizov vrednosti fiksne dolžine, medtem ko je 'Varchar' tip podatkov s spremenljivo dolžino, ki se uporablja za shranjevanje alfanumeričnih podatkov spremenljive dolžine.
Velikost pomnilniške vrednosti znaka je enaka največji velikosti tega stolpca, ki jo izjavite med ustvarjanjem tabele. Po drugi strani je velikost pomnilnika vrednosti varcharja dejanska dolžina vnesenih podatkov in ne največja velikost tega stolpca..
Char lahko uporabite, kadar se pričakuje, da bodo vnosi v stolpcu enake velikosti, nasprotno, varchar pa se lahko uporablja, kadar se pričakuje, da se vnosi podatkov v stolpcu spreminjajo po velikosti.
Char uporablja statično dodeljevanje pomnilnika, medtem ko varchar uporablja dinamično dodelitev pomnilnika
Dolžina spremenljivke char je lahko poljubna od 0 do 255, dolžina spremenljivke varchar pa od 0 do 65.535.
Vnosi podatkov so skladni s črko, ki se uporablja za shranjevanje podatkov, kot so telefonske številke, medtem ko varchar uporablja za shranjevanje različnih podatkov, kot so naslovi.
Char | Varchar |
Uporablja se za shranjevanje vrednosti nizov znakov s fiksno dolžino. | Uporablja se za shranjevanje alfanumeričnih podatkov spremenljive dolžine. |
Dolžina se giblje od 0 do 255. | Dolžina se giblje od 0 do 65.535. |
Za shranjevanje vzame 1 bajt na znak. | Zasede 1 bajt na znak plus 1 ali 2 dodatna bajta za shranjevanje podatkov o dolžini. |
Velikost pomnilnika char je enaka deklarirani. | Velikost pomnilnika varcharja je odvisna od določenega shranjenega niza. |
Uporablja statično dodeljevanje pomnilnika. | Uporablja dinamično dodelitev pomnilnika. |
Char je treba uporabiti, ko je znana dolžina spremenljivke. | Varchar je treba uporabljati le, kadar dolžina spremenljivke ni znana. |
Sprejema le znake. | Sprejema tako znake kot številke. |
Za 50 odstotkov je hitrejši od Varcharja. | Počasi je kot Char. |
Velikost pomnilnika vrednosti char je enaka največji velikosti stolpca. | Velikost pomnilnika varchar vrednosti je enaka dejanski dolžini vnesenih podatkov, ne pa največji velikosti stolpca. |