Oba su tipa podataka u mnogim programskim jezicima i sustavima baza podataka gdje se 'char' odnosi na znak, a 'varchar' na varijable. Char in C predstavlja vrstu znaka koji se koristi za pohranjivanje niza vrijednosti, uglavnom UTF-8 kodiranih znakova i cijelih brojeva. Varchar je, s druge strane, tip podataka koji može sadržavati podatke bilo koje vrste neodređene duljine. Varchar se odnosi na vrstu podataka polja u sustavu za upravljanje bazama podataka. Iako obojica mogu pohraniti nizove vrijednosti do maksimalne duljine od 8000 znakova, char zahtijeva više prostora za pohranu od varchara. Tehnički se obje koriste za pohranu istih vrsta podataka, ali se razlikuju u načinu pohrane i preuzimanja. Pogledajmo detaljno njihove razlike.
Char je vrsta podataka fiksne duljine koja se koristi za pohranjivanje znakova koji nisu Unicode, odatle i ime (skraćeno za znak). Zauzima jedan bajt prostora za svaki znak koji se kodira kao brojevi - oni iz ASCII kodiranja. Vrsta char može se koristiti i za deklariranje malih cjelobrojnih brojeva. Za proglašavanje varijable znakova koristi se ključna riječ "char", što znači da je jedan znak pohranjen u jednom bajtu.
Kao i cijeli brojevi, i char se može potpisati ili bez potpisa. Može sadržavati potpisane vrijednosti char u rasponu od -128 do 127, a ovisno o arhitektonskoj veličini, može se i potpisati bez vrijednosti, držeći vrijednosti u rasponu od 0 do 255. Kad se vrijednosti char pohranjuju, obložene su desnim presjekom s razmacima do zadane duljine , Zadnji prostori uklanjaju se kad ih potražite.
Na primjer - ako deklarirate varijablu tipa podataka char (7), uvijek će vam biti potrebno 7 bajta podataka bez obzira na to pohranjujete li 1 znak ili 7 znakova, što znači da u stupac možete pohraniti najviše 7 znakova.
Varchar je, kao što ime sugerira, vrsta podataka promjenjive duljine koja može sadržavati bilo koju vrstu podataka čija duljina varira od 0 do 65,535. Varchar polje može pohraniti vrijednosti bilo koje veličine do određene granice, ovisno o bazi podataka. Može se definirati u programskim jezicima ili na razini baze podataka. Veličina polja varchara može biti od nule do maksimalne deklarirane duljine polja.
Za deklariranje varijabilnog znaka koristi se ključna riječ 'varchar'. Varchar zauzima promjenjivi prostor, što znači da će koristiti samo broj bajtova jednak broju znakova. Pomaže u izbjegavanju rasipanja prostora, jer samo koristi prostor potreban za veličinu niza. U nekim programskim jezicima i sustavima baza podataka, svaki dodatni prostor automatski se uklanja iz baze.
Na primjer - ako deklarirate varijablu varchar (10), upotrijebit će broj bajtova jednak broju znakova. Dakle, ako spremate samo jedan znak, bit će vam potreban samo jedan bajt, a ako spremate 10 znakova, bit će potrebno 10 bajtova, izbjegavajući tako gubljenje prostora baze podataka.
'Char' je tip podataka fiksne duljine koji se koristi za pohranjivanje znakovnih nizova fiksne duljine, dok je 'Varchar' tip podataka promjenjive duljine koji se koristi za pohranjivanje alfanumeričkih podataka promjenjive duljine.
Veličina pohrane znakovne vrijednosti jednaka je maksimalnoj veličini ovog stupca koju izjavite za vrijeme stvaranja tablice. S druge strane, veličina pohrane vrijednosti varchar je stvarna duljina unesenih podataka, a ne maksimalna veličina za ovaj stupac.
Možete koristiti char kad se očekuje da će unosi podataka u stupcu biti iste veličine, dok se naprotiv, varchar može koristiti kad se očekuje da se unosi podataka u stupcu razlikuju po veličini.
Char koristi statičku raspodjelu memorije dok varchar koristi dinamičku raspodjelu memorije
Duljina char varijable može biti bilo koje vrijednosti od 0 do 255, dok duljina varijable varchar varira od 0 do 65,535.
Unosi podataka su konzistentni u tabeli koja se koristi za pohranjivanje podataka poput telefonskih brojeva, dok se varchar koristi za pohranu različitih podataka poput adresa.
čađ | varchar |
Koristi se za pohranu znakovnih nizova vrijednosti fiksne duljine. | Koristi se za pohranu alfanumeričkih podataka promjenjive duljine. |
Duljina varira od 0 do 255. | Duljina varira od 0 do 65,535. |
Za pohranu uzima 1 bajt po znaku. | Uzima 1 bajt po znaku plus 1 ili 2 dodatna bajta za pohranu podataka o duljini. |
Veličina skladištenja char je ista kao deklarirana. | Veličina skladištenja varchara ovisi o specifičnom spremljenom nizu. |
Koristi statičku raspodjelu memorije. | Koristi dinamičku raspodjelu memorije. |
Char treba koristiti kada je poznata duljina varijable. | Varchar se treba koristiti samo kad duljina varijable nije poznata. |
Prihvaća samo znakove. | Prihvaća i znakove i brojeve. |
50 posto je brži od Varchara. | To je sporije od Char. |
Veličina skladištenja char vrijednosti jednaka je maksimalnoj veličini stupca. | Veličina skladištenja vrijednosti varchara jednaka je stvarnoj duljini unesenih podataka, a ne maksimalna veličina za stupac. |