Båda är datatyper på många programmeringsspråk och databassystem där "char" avser tecken och "varchar" avser variabel karaktär. Char i C representerar teckentypen som används för att lagra strängvärden, mestadels UTF-8 kodade tecken och heltal. Varchar är å andra sidan en datatyp som kan innehålla data av vilken typ av obestämd längd som helst. Varchar hänvisar till en datatyp för ett fält i ett databashanteringssystem. Medan de båda kan lagra strängvärden upp till en maximal längd på 8 000 tecken kräver char mer lagring än varchar. Tekniskt används de båda för att lagra samma typer av data, men de skiljer sig åt i det sätt de lagras och hämtas. Låt oss ta en titt på deras skillnader i detalj.
Char är en datatyp av fast längd som används för att lagra icke-Unicode-tecken, därav namnet (kort för tecken). Det upptar en byte av utrymme för varje tecken som kodas som nummer - de från ASCII-kodningen. Char typen kan också användas för att deklarera små heltal. För att deklarera en teckenvariabel används sökordet "char", vilket innebär att ett enda tecken lagras i en byte.
Som heltalstyper kan teckentecknas eller unsigned. Den kan innehålla signerade char-värden från -128 till 127 och beroende på den arkitektoniska storleken kan den också vara unsigned och innehålla värden som sträcker sig från 0 till 255. När char värden lagras har de rätt polstret med mellanslag till angiven längd . De bakre utrymmena tas bort när de hämtas.
Om du till exempel anger en variabel av char (7) datatyp, tar den alltid 7 byte data oavsett om du lagrar 1 tecken eller 7 tecken, vilket innebär att du kan lagra högst 7 tecken i kolumnen.
Varchar, som namnet antyder, är en datatyp av varierande längd som kan innehålla vilken typ av data som helst med längden varierande från 0 till 65 535. Varchar-fältet kan lagra värden av någon storlek upp till en viss gräns, beroende på databasen. Det kan definieras antingen i programmeringsspråk eller på databasnivå. Storleken på varcharfältet kan vara allt från noll till den maximala deklarerade fältlängden.
För att deklarera en variabel bokstav används "varchar" -sökordet. Varchar tar ett variabelt utrymme, vilket betyder att det bara kommer att använda antalet byte lika med antalet tecken. Det hjälper till att undvika slöseri med utrymme eftersom det bara utnyttjar det utrymme som krävs för strängens storlek. I vissa programmeringsspråk och databassystem tas eventuellt extra utrymme automatiskt från databasen.
Till exempel - om du förklarar en variabel av varchar (10), kommer den att använda antalet byte lika med antalet tecken. Så, om du bara lagrar ett tecken, tar det bara en byte och om du lagrar 10 tecken kommer det att ta 10 byte och därigenom undviker du slöseri med databasutrymmet.
'Char' är en datatyp av fast längd som används för att lagra teckensträngsvärdet av den fasta längden medan "Varchar" är en datatyp med variabel längd som används för att lagra alfanumerisk data med variabel längd.
Lagringsstorleken för teckenvärdet är lika med den maximala storleken på den här kolumnen som du deklarerar när du skapar tabellen. Å andra sidan är lagringsstorleken för varcharvärdet den faktiska längden på den angivna data, inte den maximala storleken för den här kolumnen.
Du kan använda char när uppgifterna i en kolumn förväntas vara lika stora, medan tvärtom kan varchar användas när dataangivelserna i en kolumn förväntas variera i storlek.
Char använder statisk minnesallokering medan varchar använder dynamiskt minnesallokering
Längden på en char variabel kan ha något värde från 0 till 255 medan längden på varchar-variabeln varierar mellan 0 och 65.535.
Datainmatning är konsekvent i char som används för att lagra data som telefonnummer, medan varchar används för att lagra varierande data som adresser.
Röding | Varchar |
Används för att lagra teckensträngsvärde av fast längd. | Används för att lagra alfanumeriska data med variabel längd. |
Längden varierar från 0 till 255. | Längden varierar mellan 0 och 65.535. |
Tar 1 byte per tecken för lagring. | Tar 1 byte per tecken plus 1 eller 2 extra byte för lagring av längdinformation. |
Förvaringsstorleken för char är densamma som deklarerat. | Lagringsstorleken för varchar beror på den specifika strängen som lagras. |
Använder statisk minnesallokering. | Använder dynamisk minnesallokering. |
Char bör användas när längden på variabeln är känd. | Varchar bör endast användas när längden på variabeln inte är känd. |
Den accepterar bara tecken. | Den accepterar både tecken och siffror. |
Det är 50 procent snabbare än Varchar. | Det är långsammare än Char. |
Lagringsstorleken för char-värdet är lika med den maximala storleken för kolumnen. | Lagringsstorleken för varchar-värdet är lika med den faktiska längden på den angivna data, inte den maximala storleken för kolumnen. |