Tärkein ero: Tietokantajärjestelmissä, kuten SQL Serverissä, Char ja Varchar ovat molemmat datatyyppejä, joissa char todella viittaa merkkiin ja Varchar viittaa muuttujaan. Molempia käytetään tallentamaan merkkijonotyyppejä, joiden pituus on enintään 8 000 merkkiä. Charin tallennuskoko on sama kuin ilmoitettu, kun taas Varcharin kuudes vaihe riippuu syötettyjen tietojen tavuista.
Otetaanpa esimerkki - jos Char-data ilmoitetaan tavalla: julista testi Char (20), ja test = "testaus", sitten testaus vie ensimmäiset 7 tavua ja lepo täytetään tyhjillä tiedoilla. Toisaalta, jos Varcharin data ilmoitetaan tavalla: julista testi Varchar (20) ja test = “testaa”, niin se vie vain 7 + 2 tavua.
Charia tulisi käyttää, kun muuttujan pituus tunnetaan, kun taas Varcharia tulisi käyttää vain silloin, kun pituus on tuntematon. Char on nopeampi kuin Varchar, koska Varchar-järjestelmä viettää jonkin aikaa havaitsemaan aika, joka kuluu merkkijonon loppuun. Toisaalta tämä aika ei hukkaan Charissa.
Charin ja Varcharin vertailu:
char | Varchar | |
Täysi muoto | Merkki | Muuttujan merkki (muuttujan pituuden merkin yhteydessä) |
merkitys | Käytetään tallentamaan ei-Unicode-merkkijonotietoja, joiden pituus on kiinteä | Käytetään tallentamaan ei-Unicode-merkkijonoja, joiden pituus on vaihteleva |
Tallennukseen käytetyt bytit | 1 tavu merkkiä kohden | 1 tavu merkkiä kohden ja 1 tai 2 tavua lisää pitoa koskevien tietojen pitämiseen |
hakemus | Käytetään tietojen, kuten puhelinnumeron, jne. Tallentamiseen (tietojen merkinnät ovat yhdenmukaisia). | Käytetään tietojen, kuten osoitteen, tallentamiseen (tietojen merkinnät vaihtelevat suuresti) |
Ehto: syöttö merkkijonoa vähemmän kuin ilmoitetut tavut | Ilman merkkiä oleva tila on pehmustettu välilyönteillä | Ilman merkkiä oleva tila ei ole pehmustettu mihinkään merkkiin |
Ehto: syöttää merkkijono enemmän kuin ilmoitetut tavut | Merkkijono katkaistaan ilmoitetuiksi tavuiksi | Merkkijono katkaistaan ilmoitetuiksi tavuiksi. |