Razlika između Char i Varchara

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.

Što je Char?

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.

Što je Varchar?

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.

Razlika između Char i Varchar

  1. Vrsta 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.

  1. Veličina skladištenja

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.

  1. Unosi podataka

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.

  1. Dodjela memorije

Char koristi statičku raspodjelu memorije dok varchar koristi dinamičku raspodjelu memorije

  1. dužina

Duljina char varijable može biti bilo koje vrijednosti od 0 do 255, dok duljina varijable varchar varira od 0 do 65,535.

  1. primjena

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.

Char protiv Varchara

č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.

Sažetak

  • I 'Char' i 'Varchar' su tipovi podataka u programskim jezicima i sustavima baza podataka koji imaju neke zajedničke osobine u pogledu funkcionalnosti i tehničke osobine. Međutim, oni se znatno razlikuju poput načina pohrane i preuzimanja.
  • Dok se char zapravo odnosi na znak, varchar se odnosi na promjenjivi lik. Kao što ime sugerira, char je vrsta podataka fiksne duljine, dok je varchar vrsta podataka promjenjive duljine.
  • Char zauzima do 1 bajta po znaku, dok varchar također ima do 1 bajta po znaku plus dodatnih 1 ili 2 bajta za pohranu podataka o duljini. Za char, duljina varira od 0 do 255, a za varchar može biti između 0 i 65,535.
  • Kako je znak fiksne duljine, bilo koji preostali prostor u polju prekriven je prazninama. Varchar je, s druge strane, promjenjive duljine, tako da sadrži samo znakove koje joj dodijelite.
  • Preostali znakovi obloženi su bijelim razmacima kada su vrijednosti pohranjene u polja 'char', dok 'varchar' ne dodaje dodatne razmake kad date manje podataka od navedene duljine.