Ključna razlika: V sistemih baz podatkov, kot so SQL Server, sta Char in Varchar oba tipa podatkov, kjer se char dejansko nanaša na znak in Varchar se nanaša na spremenljiv znak. Oba sta uporabljena za shranjevanje vrste vrednosti vrednosti z največjo dolžino 8.000 znakov. Velikost pomnilnika znaka je enaka deklarirani, medtem ko je faza šesti od Varchar odvisna od bajtov dejanskih vnesenih podatkov.
Vzemimo za primer - če so Charovi podatki deklarirani na način: razglasi test Char (20) in test = "testiranje", potem bo testiranje zasedlo prvih 7 bajtov in ostalo bo zapolnjeno z praznimi podatki. Po drugi strani pa, če so podatki Varchar deklarirani na nek način: razglasi test Varchar (20) in test = "testiranje", potem pa bo zasedel le 7 + 2 bajta.
Char je treba uporabiti, kadar je znana dolžina spremenljivke, medtem ko je treba Varchar uporabljati samo, če je dolžina neznana. Char je hitrejši od Varcharja, saj sistem Varchar porabi nekaj časa za odkrivanje časa za iskanje konca niza. Po drugi strani pa ta čas ni zapravljen v Char.
Primerjava med Char in Varchar:
Char | Varchar | |
Celoten obrazec | Znak | Spremenljiv znak (v kontekstu znaka spremenljive dolžine) |
Pomen | Uporablja se za shranjevanje podatkov niza Unicode s fiksno dolžino | Uporablja se za shranjevanje podatkov niza Unicode s spremenljivo dolžino |
Bajti, uporabljeni za shranjevanje | 1 bajt na znak | 1 bajt na znak in 1 ali 2 bajta za zadrževanje podatkov o dolžini |
Uporaba | Uporablja se za shranjevanje podatkov, kot je telefonska številka itd. (Vnosi podatkov so skladni.) | Uporablja se za shranjevanje podatkov, kot je naslov (podatki se v veliki meri razlikujejo) |
Pogoj: vhodni niz manj kot deklarirani bajti | Prostor brez znakov bo opremljen s presledki | Prostor brez znaka ne bo obdan z nobenim od znakov |
Pogoj: vhodni niz je več kot deklarirani bajti | Niz bo skrajšan na deklarirane bajte | Niz bo skrajšan na deklarirane bajte. |