Molemmat ovat tietotyyppejä monissa ohjelmointikielissä ja tietokantajärjestelmissä, joissa 'char' tarkoittaa merkkiä ja 'varchar' tarkoittaa muuttuvaa merkkiä. C-merkinnässä oleva Char edustaa merkkityyppiä, jota käytetään merkkijonoarvojen, lähinnä UTF-8-koodattujen merkkien ja kokonaislukujen, tallentamiseen. Varchar puolestaan on tietotyyppi, joka voi sisältää minkä tahansa tyyppistä määrittelemätöntä pituutta. Varchar viittaa kentän tietotyyppiin tietokannan hallintajärjestelmässä. Vaikka molemmat voivat tallentaa merkkijonoarvoja, joiden enimmäispituus on 8000 merkkiä, char vaatii enemmän tallennustilaa kuin varchar. Teknisesti niitä molempia käytetään samantyyppisten tietojen tallentamiseen, mutta ne eroavat tallennus- ja noutotavoista. Katsotaanpa niiden eroja yksityiskohtaisesti.
Char on kiinteä pituinen tietotyyppi, jota käytetään muiden kuin Unicode-merkkien tallentamiseen, joten nimi (lyhenne merkistä). Se vie yhden tavun tilaa jokaiselle merkille, jotka koodataan numeroina - ASCII-koodauksesta. Char-tyyppiä voidaan käyttää myös pienten kokonaislukujen ilmoittamiseen. Merkkimuuttujan ilmoittamiseksi käytetään avainsanaa 'char', mikä tarkoittaa, että yksi merkki tallennetaan yhteen tavuun.
Kuten kokonaisluku tyypit, char voidaan allekirjoittaa tai allekirjoittaa. Se voi pitää allekirjoitettuja char-arvoja välillä -128 - 127 ja riippuen arkkitehtuurin koosta, se voi myös olla allekirjoittamaton, pitoarvot vaihtelevat välillä 0-255. Kun char-arvot tallennetaan, ne on oikein täytetty välilyönneillä määriteltyyn pituuteen. . Loppuvälit poistetaan, kun ne noudetaan.
Esimerkiksi - jos ilmoitat muuttujan char (7) tietotyypin, se vie aina 7 tavua dataa riippumatta siitä, tallennatko 1 merkkiä vai 7 merkkiä, mikä tarkoittaa, että voit tallentaa enintään 7 merkkiä sarakkeeseen.
Varchar, kuten nimestä voi päätellä, on muuttuvapituinen tietotyyppi, joka voi sisältää minkä tahansa tyyppistä dataa, jonka pituus vaihtelee välillä 0 - 65 535. Varchar-kenttä voi tallentaa minkä tahansa kokoisia arvoja tiettyyn rajaan asti, tietokannasta riippuen. Se voidaan määritellä joko ohjelmointikielellä tai tietokantatasolla. Varchar-kentän koko voi olla mikä tahansa nollasta suurimpaan ilmoitettuun kentän pituuteen.
Muuttuvan merkin ilmoittamiseksi käytetään avainsanaa 'varchar'. Varchar vie muuttuvan tilan, mikä tarkoittaa, että se käyttää vain merkkien määrää vastaavaa tavujen lukumäärää. Se auttaa välttämään tilan tuhlausta, koska se käyttää vain merkkijonon kokoon tarvittavaa tilaa. Joissakin ohjelmointikielissä ja tietokantajärjestelmissä ylimääräinen tila poistetaan automaattisesti tietokannasta.
Esimerkiksi - jos julistat muuttujan varchar (10), se käyttää tavujen lukumäärää, joka on yhtä suuri kuin merkkien lukumäärä. Joten jos tallennat vain yhtä merkkiä, niin se vie vain yhden tavun, ja jos tallennat 10 merkkiä, se vie 10 tavua, jolloin vältetään tietokantatilan tuhlaaminen.
'Char' on kiinteän pituinen tietotyyppi, jota käytetään kiinteän pituuden merkkijonon arvon tallentamiseen, kun taas 'Varchar' on muuttuvan pituinen tietotyyppi, jota käytetään muuttuvan pituisen aakkosnumeerisen datan tallentamiseen.
Merkkiarvon tallennuskoko on yhtä suuri kuin tämän sarakkeen enimmäiskoko, jonka ilmoitat luotaessa taulukkoa. Toisaalta varchar-arvon tallennuskoko on syötettyjen tietojen todellinen pituus, ei tämän sarakkeen enimmäiskoko.
Voit käyttää char-näppäintä, kun sarakkeen tietomerkintöjen odotetaan olevan samankokoisia, kun taas päinvastoin, varcharia voidaan käyttää, kun sarakkeen tietomerkintöjen odotetaan vaihtelevan koon.
Char käyttää staattista muistin allokointia, kun taas varchar käyttää dynaamista muistin allokointia
Char-muuttujan pituus voi olla mikä tahansa arvo välillä 0 - 255, kun taas varchar-muuttujan pituus on välillä 0 - 65 535.
Tiedot ovat yhdenmukaisia merkinnällä, jota käytetään tietojen, kuten puhelinnumeroiden, tallentamiseen, kun taas varcharia käytetään erilaisten tietojen, kuten osoitteiden, tallentamiseen..
char | Varchar |
Käytetään kiinteän pituuden merkkijonoarvon tallentamiseen. | Käytetään muuttuvan pituisten aakkosnumeeristen tietojen tallentamiseen. |
Pituus vaihtelee välillä 0 - 255. | Pituus vaihtelee välillä 0 - 65 535. |
Kestää 1 tavu merkkiä kohti tallennusta varten. | Kestää 1 tavu merkkiä kohti ja 1 tai 2 ylimääräistä tavua pituustietojen tallentamiseksi. |
Hiilen säilytyskoko on sama kuin ilmoitettu. | Varchar-muistin tallennuskoko riippuu tallennetusta merkkijonosta. |
Käyttää staattista muistin allokointia. | Käyttää dynaamista muistin allokointia. |
Charia tulisi käyttää, kun muuttujan pituus on tiedossa. | Varcharia tulisi käyttää vain, kun muuttujan pituutta ei tiedetä. |
Se hyväksyy vain merkit. | Se hyväksyy sekä merkit että numerot. |
Se on 50 prosenttia nopeampi kuin Varchar. | Se on hitaampaa kuin Char. |
Char-arvon tallennuskoko on yhtä suuri kuin sarakkeen enimmäiskoko. | Varchar-arvon tallennuskoko on yhtä suuri kuin syötettyjen tietojen todellinen pituus, ei sarakkeen enimmäiskoko. |