Begge er datatyper i mange programmeringsspråk og databasesystemer hvor 'char' refererer til tegn og 'varchar' refererer til variabel karakter. Char i C representerer tegntypen som brukes til å lagre strengverdier, for det meste UTF-8 kodede tegn og heltall. Varchar, derimot, er en datatype som kan inneholde data av enhver type ubestemt lengde. Varchar refererer til en datatype for et felt i et databasehåndteringssystem. Selv om de begge kan lagre strengverdier opp til maksimal lengde på 8 000 tegn, krever kar mer lagring enn varchar. Teknisk sett brukes de begge til å lagre de samme dataene, men de er forskjellige i måten de lagres og hentes på. La oss se på forskjellene deres i detalj.
Char er en datatype med fast lengde som brukes til å lagre ikke-Unicode-tegn, derav navnet (kort for tegn). Den inntar en byte plass for hver karakter som er kodet som tall - de fra ASCII-kodingen. Karetypen kan også brukes til å erklære små heltall. For å deklarere en tegnvariabel, brukes søkeordet 'char', som betyr at et enkelt tegn lagres i en byte.
I likhet med heltalltypene kan char bli signert eller usignert. Den kan inneholde signerte char-verdier fra -128 til 127, og avhengig av arkitektonisk størrelse kan den også være usignert og inneholde verdier fra 0 til 255. Når karbonverdier lagres, er de rettpolstret med mellomrom til den angitte lengden . De bakre mellomrom fjernes når de hentes.
For eksempel - hvis du erklærer en variabel av char (7) datatype, vil den alltid ta 7 byte med data uansett om du lagrer 1 tegn eller 7 tegn, noe som betyr at du kan lagre maksimalt 7 tegn i kolonnen.
Varchar, som navnet antyder, er en datatype av variabel lengde som kan inneholde alle typer data med lengden varierende fra 0 til 65.535. Varchar-feltet kan lagre verdier av en hvilken som helst størrelse opp til en viss grense, avhengig av databasen. Det kan defineres enten i programmeringsspråk eller på databasenivå. Størrelsen på varchar-feltet kan være alt fra null til maksimal deklarert feltlengde.
For å erklære en variabel karakter brukes "varchar" søkeordet. Varchar tar en variabel plass, noe som betyr at den bare vil bruke antall byte som antall tegn. Det hjelper med å unngå sløsing med plass, da det bare bruker plassen som kreves for strengenes størrelse. I noen programmeringsspråk og databasesystemer blir eventuelle ekstra plasser fjernet automatisk fra databasen.
For eksempel - hvis du erklærer en variabel av varchar (10), vil den bruke antall byte som er like som antall tegn. Så hvis du lagrer bare ett tegn, vil det bare ta en byte, og hvis du lagrer 10 tegn, vil det ta 10 byte, og dermed unngår du sløsing med databasen.
'Char' er en datatype med fast lengde som brukes til å lagre tegnstrengverdien av fast lengde, mens 'Varchar' er en datatype med variabel lengde som brukes til å lagre alfanumeriske data med variabel lengde.
Lagringsstørrelsen på tegnverdien er lik den maksimale størrelsen på denne kolonnen du erklærer mens du lager tabellen. På den annen side er lagringsstørrelsen på varcharverdien den faktiske lengden på dataene som er oppgitt, ikke maksimumstørrelsen for denne kolonnen.
Du kan bruke char når dataoppføringene i en kolonne forventes å være i samme størrelse, mens tvert imot kan varchar brukes når dataoppføringene i en kolonne forventes å variere i størrelse.
Char bruker statisk minneallokering mens varchar bruker dynamisk minneallokering
Lengden på en char-variabel kan ha en verdi fra 0 til 255, mens lengden på varchar-variabelen varierer fra 0 til 65 535.
Dataoppføringer er konsistente med char som brukes til lagring av data som telefonnumre, mens varchar brukes til lagring av varierende data som adresser.
Char | varchar |
Brukes til å lagre tegnstreng verdi av fast lengde. | Brukes til å lagre alfanumeriske data med variabel lengde. |
Lengden varierer fra 0 til 255. | Lengden varierer fra 0 til 65.535. |
Tar 1 byte per tegn for lagring. | Tar 1 byte per tegn pluss 1 eller 2 ekstra byte for lagring av lengdeinformasjon. |
Lagringsstørrelsen på karbon er den samme som deklarert. | Lagringsstørrelsen på varchar avhenger av den spesifikke strengen som er lagret. |
Bruker statisk minneallokering. | Bruker dynamisk minneallokering. |
Char bør brukes når lengden på variabelen er kjent. | Varchar skal kun brukes når lengden på variabelen ikke er kjent. |
Den aksepterer bare tegn. | Den aksepterer både tegn og tall. |
Det er 50 prosent raskere enn Varchar. | Det er tregere enn Char. |
Lagringsstørrelsen på char-verdien er lik maksimalstørrelsen for kolonnen. | Lagringsstørrelsen på varchar-verdien er lik den faktiske lengden på dataene som er oppgitt, ikke maksimumstørrelsen for kolonnen. |