Char i Varchar
Obje su vrste podataka u mnogim programskim jezicima i sustavima baze podataka gdje se 'char' odnosi na znak i 'varchar' se odnosi na varijabilni karakter. Char u C predstavlja vrstu znaka koji se koristi za pohranjivanje vrijednosti niza, uglavnom kodiranih znakova UTF-8 i cijelih brojeva. Varchar, s druge strane, je vrsta podataka koja može sadržavati podatke bilo koje vrste neodređene duljine. Varchar se odnosi na vrstu podataka polja u sustavu upravljanja bazom podataka. Iako oboje mogu pohraniti vrijednosti niza do maksimalne dužine od 8.000 znakova, znak zahtijeva više prostora za pohranu nego varchar. Tehnički, oboje se upotrebljavaju za pohranjivanje istih vrsta podataka, ali se razlikuju po načinu pohranjivanja i preuzimanja. Pogledajmo njihove razlike u detaljima.
Što je Char?
Char je vrsta podataka s fiksnom duljinom koja se koristi za pohranjivanje znakova koji nisu Unicode, pa stoga ime (kratko za znak). Zauzima jedan bajt prostora za svaki znak koji je kodiran kao brojevi - oni iz ASCII kodiranja. Karakter se također može upotrijebiti za deklariranje malih cjelina. Da biste proglasili varijablu znakova, koristi se ključna riječ "char", što znači da je jedan znak pohranjen u jednom bajtu.
Kao i cijeli brojevi, znak može biti potpisan ili nepotpisan. Može sadržavati znakove char-signala u rasponu od -128 do 127 i ovisno o arhitektonskoj veličini, također može biti nepotpisana, držeći vrijednosti u rasponu od 0 do 255. Kada su pohranjene char vrijednosti, oni su pravilno ispunjeni razmakom na određenu duljinu, Proredni prostori uklanjaju se kada se vrate.
Na primjer - ako izradite varijablu vrste char (7), tada će uvijek trajati 7 bajta podataka bez obzira na to pohranjujete li 1 znak ili 7 znakova, što znači da možete pohraniti najviše 7 znakova u stupac.
Što je Varchar?
Varchar, kao što ime sugerira, je vrsta podataka promjenjive duljine koja može sadržavati bilo koju vrstu podataka s duljinom koja 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 ili na programskim jezicima ili na razini baze podataka. Veličina polja varchar može biti bilo što od nule do maksimalne deklarirane dužine polja.
Da biste proglasili varijabilni znak, upotrebljava se ključna riječ "varchar". Varchar ima varijabilni prostor, što znači da će koristiti samo broj bajtova jednak broju znakova. Pomaže u izbjegavanju gubitka prostora jer koristi samo prostor potrebnu za veličinu niza. U nekim programskim jezicima i sustavima baze podataka, bilo koji dodatni prostor automatski se uklanja iz baze podataka.
Na primjer - ako izjavljujete varijablu varchar (10), upotrijebit će broj bajtova jednak broju znakova. Dakle, ako spremate samo jedan znak, to će trajati samo jedan bajt, a ako spremate 10 znakova, potrebno je 10 bajta, čime se izbjegava gubitak prostora baze podataka.
Razlika između Char i Varchar
- Tip podataka
"Char" je vrsta podataka s fiksnom duljinom koja se koristi za pohranjivanje vrijednosti nizova znakova fiksne duljine, dok je "Varchar" vrsta podataka promjenjive duljine koja se koristi za pohranu alfanumeričkih podataka promjenjive duljine.
- Veličina pohrane
Veličina pohrane vrijednosti znaka jednaka je maksimalnoj veličini tog stupca koju izjavljujete prilikom izrade tablice. S druge strane, veličina pohrane varchar vrijednosti je stvarna duljina unesenih podataka, a ne maksimalna veličina za ovaj stupac.
- Unosi podataka
Možete upotrijebiti znak kada se podaci o unosima u stupcu očekuju da budu iste veličine, a naprotiv, varchar se može upotrebljavati ako se veličine podataka razlikuju u podacima u stupcu.
- Određivanje memorije
Char koristi dodjelu statičke memorije, dok varchar koristi raspodjelu dinamičke memorije
- dužina
Dužina varijable char može biti bilo koje vrijednosti od 0 do 255, dok se duljina varchar varijabli kreće od 0 do 65,535.
- primjena
Unosi podataka konzistentni su u znaku koji se koristi za pohranu podataka kao što su telefonski brojevi, dok se varchar koristi za spremanje različitih podataka kao što su adrese.
Char protiv Varchara
čađ | varchar |
Koristi se za pohranu vrijednosti niza znakova 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 je potrebno 1 baj po znaku. | Uzima 1 bajt po znaku plus 1 ili 2 dodatne bajta za pohranu podataka o duljini. |
Veličina skladišta čestica je ista kao i deklarirana. | Veličina spremnika varchar ovisi o specificiranom nizu pohranjenom. |
Upotrebljava dodjelu statičke memorije. | Koristi dinamičku dodjelu memorije. |
Char treba koristiti kada je poznata duljina varijable. | Varchar treba koristiti samo kada duljina varijable nije poznata. |
Prihvaća samo znakove. | Prihvaća i znakove i brojeve. |
To je 50 posto brže od Varchara. | Sporije je od Char. |
Veličina pohrane char vrijednosti jednaka je maksimalnoj veličini za stupac. | Veličina pohrane varchar vrijednosti jednaka je stvarnoj duljini unesenih podataka, a ne maksimalnoj veličini za stupac. |
Sažetak
- Oba "Char" i "Varchar" su vrste podataka u programskim jezicima i sustavima baze podataka koji dijele neke uobičajene osobine u smislu funkcionalnosti i tehnike. Međutim, oni se znatno razlikuju od načina na koji su pohranjeni i dohvaćeni.
- Dok se znak zapravo odnosi na karakter, varchar se odnosi na varijabilni karakter. Kao što ime sugerira, char je vrsta podataka s fiksnom duljinom, dok je varchar vrsta podataka promjenjive duljine.
- Char zauzimaju do 1 bajta po znaku, dok varchar također zauzimaju do 1 bajt po znaku plus dodatnih 1 ili 2 bajta kako bi pohranili podatke o duljini. Za char, duljina varira od 0 do 255, a za varchar, to može biti bilo što između 0 i 65.535.
- Dok je šarka fiksna duljina, bilo koji preostali prostor na polju je ispunjen prazninama. Varchar, s druge strane, varijabilno je duljina tako da ima samo znakove koje ste mu dodijelili.
- Preostali znakovi ispunjeni su bijelim prostorima kada su vrijednosti pohranjene u polju "char", a "varchar" ne dodaje dodatne prostore kada dajete manje podataka od navedene duljine.