Varchar vs Nvarchar
Erinevus varchari ja nvarchari vahel näitab, kuidas andmeid andmebaasis salvestatakse. Andmebaasisüsteem koosneb andmetest ja andmed on määratletud andmetüüpide kaupa. Andmetüüp ütleb, millist väärtust veerg võib sisaldada. Andmebaasi tabeli igal veerul peab olema nimi ja andmetüüp. Tänapäeval on andmebaasi kujundamisel saadaval palju andmetüüpe. Nendest andmetüüpidest kasutatakse stringimärkide salvestamiseks varchari ja nvarchari. Varchar ja Nvarchar tunduvad olevat asendatavad. Kuid neil kahel tüübil on erinevad eelised ja neid kasutatakse erinevatel eesmärkidel.
Mis on Varchar?
Nagu nimigi ütleb, on varchar muutuv märk või varieeruv märk. Varchari süntaks on VARCHAR [(n|max)]. Varchar salvestab ASCII-andmeid, mis ei ole Unicode'i andmed, ja see on andmetüüp, mida kasutatakse tavakasutuses. Varchar kasutab ühte baiti tähemärgi kohta. Samuti salvestab see andmebaasi iga stringi pikkuse. Varcharil on muutuv andmepikkus ja see võib salvestada kuni 8000 mitte-Unicode'i tähemärki. See andmetüüp on väga paindlik ja aktsepteerib enamikku erinevat tüüpi andmeid. Varchar ei luba salvestada stringi kasutamata osade jaoks tühje märke. Varchari maksimaalne salvestusmaht on 2 GB ja andmete tegelik salvestusmaht on andmete tegelik pikkus pluss kaks baiti. Kuigi varchar on aeglasem kui char, kasutab see dünaamilist mälujaotust. Varchari andmetüüpi saab salvestada ka mitte ainult stringe, vaid ka mittestringitüüpe, nagu kuupäevatüübid, “14. veebruar”, “2014-11-12”.
Mis on Nvarchar?
Nvarchar soovitab rahvuslikku varieeruvat märki või rahvuslikku varieeruvat tähemärki. Nvarchari süntaks on NVARCHAR [(n|max)]. Nvarchar saab salvestada erinevat tüüpi andmeid erineva pikkusega. Need on Unicode'i andmed ja mitmekeelsed andmed ning kahebaidiliste tähemärkidega keeled hiina keeles. Nvarchar kasutab 2 baiti tähemärgi kohta ja see suudab salvestada maksimaalselt 4000 tähemärki ja maksimaalselt 2 GB pikkust. Nvarchar käsitleb " " kui tühja stringi ja nulli tähemärgi pikkust. Salvestusmaht on kaks korda suurem kui tähemärkide arv pluss kaks baiti. Nvarcharis ei eemaldata väärtuse salvestamisel ja vastuvõtmisel lõpus olevaid tühikuid.
Mis vahe on Varcharil ja Nvarcharil?
Põhiline erinevus varchari ja nvarchari vahel näitab, kuidas andmeid andmebaasis salvestatakse.
• Varchar salvestab ASCII väärtused ja nvarchar Unicode'i märgid.
• Varchar kasutab ühte baiti märgi kohta, nvarchar aga kahte baiti märgi kohta.
• Varchar [(n)] salvestab muutuva pikkusega mitte-Unicode'i märgid ja Nvarchar [(n)] salvestab muutuva pikkusega Unicode'i märgid.
• Varchar saab salvestada kuni 8000 mitte-Unicode'i tähemärki ja nvarchar kuni 4000 Unicode'i või mitte-Unicode'i tähemärki.
• Varcharit on parem kasutada kohtades, kus on mitte-Unicode-märkidega muutujad. Nvarcharit kasutatakse kohtades, kus on Unicode'i tähemärkidega muutujad.
• Varchari salvestusmaht on baitide arv, mis võrdub märkide arvuga pluss kaks baiti, mis on reserveeritud nihkeks. Nvarchar kasutab baitide arvu, mis on võrdne kahekordse märkide arvuga pluss kaks baiti, mis on reserveeritud nihke jaoks.
• Kõik kaasaegsed operatsioonisüsteemid ja arendusplatvormid kasutavad sisemiselt Unicode'i. Seetõttu kasutatakse andmetüüpide teisendamise vältimiseks pigem nvarcharit kui varcharit.
Kokkuvõte:
Nvarchar vs Varchar
Varchar ja nvarchar on muutuva pikkusega andmetüübid, mida kasutame erinevat tüüpi stringide salvestamiseks. Need andmetüübid on abiks kaasaegsetes operatsioonisüsteemides. Need andmetüübid väldivad andmete teisendamist ühest tüübist teise vastav alt operatsioonisüsteemidele. Seetõttu aitavad varchar ja nvarchar programmeerijal ilma suuremate raskusteta tuvastada Unicode'i ja mitte-Unicode'i stringe. Need kaks andmetüüpi on programmeerimisel väga kasulikud.