Mindkettő adattípus sok programozási nyelven és adatbázis-rendszerben, ahol a „char” a karakterre, a „varchar” a változó karakterre utal. A C betűben szereplő karaktertípus képviseli a karakterlánc értékeket, főként UTF-8 kódolt karaktereket és egészeket. Varchar viszont egy adattípus, amely bármilyen típusú, meghatározatlan hosszúságú adatot tartalmazhat. Varchar egy mező adattípusára utal az adatbázis-kezelő rendszerben. Bár mindkettő karakterláncértékeket tárolhat legfeljebb 8000 karakter hosszúságig, a char több tárolást igényel, mint a varchar. Technikai szempontból mindkettőt azonos típusú adatok tárolására használják, de különböznek egymástól a tárolásuk és a beolvasás módja szerint. Vessen egy pillantást a különbségekre részletesen.
A Char egy rögzített hosszúságú adattípus, amelyet nem Unicode karakterek tárolására használnak, következésképpen a név (rövid karakter). Minden karakternél egy byte helyet foglal el, amelyet számként kódolnak - az ASCII kódolásból. A char típus felhasználható kis egész számok deklarálására is. Karakterváltozó deklarálásához a „char” kulcsszót kell használni, ami azt jelenti, hogy egyetlen karaktert egy bájtban tárolnak.
Az egész számtípushoz hasonlóan a char aláírható vagy aláírhatatlan is. Az aláírt char-értékeket -128-tól 127-ig tarthatja, és az építészeti mérettől függően aláírhatatlanok is lehetnek, 0-tól 255-ig tartó értékekkel. Ha a char-értékeket tárolják, akkor jobbra párnázva vannak a megadott hosszúságú szóközökkel. . A hátsó terek eltávolításukkor eltávolításra kerülnek.
Például - ha a char (7) adattípus változóját deklarálja, akkor mindig 7 bájtnyi adatot vesz igénybe, függetlenül attól, hogy 1 karaktert vagy 7 karaktert tárol, vagyis legfeljebb 7 karaktert tárolhat az oszlopban.
A varchar, ahogy a neve is sugallja, változó hosszúságú adattípus, amely bármilyen típusú adatot tartalmazhat, a hossza 0 és 65 535 közötti lehet. A Varchar mező bármilyen méretű értéket tárolhat egy bizonyos határig, az adatbázistól függően. Meg lehet határozni a programozási nyelveken vagy az adatbázis szintjén. A varchar mező mérete nullától a maximális deklarált mezőhosszig terjedhet.
A változó karakter deklarálásához a 'varchar' kulcsszót kell használni. Varchar változó helyet foglal el, ami azt jelenti, hogy csak a karakterek számával megegyező byte-számot fogja használni. Ez segít elkerülni a hely pazarlását, mivel csak a húr méretéhez szükséges helyet használja fel. Egyes programozási nyelvekben és adatbázis-rendszerekben minden extra hely automatikusan eltávolításra kerül az adatbázisból.
Például - ha a varchar (10) változót deklarálja, akkor a karakterek számával megegyező bájt számot fog használni. Tehát, ha csak egy karaktert tárol, akkor csak egy bájtot igényel, és ha 10 karaktert tárol, akkor 10 bájtot fog igénybe venni, ezzel elkerülve az adatbázis-terület pazarlását.
A „Char” egy rögzített hosszúságú adattípus, amelyet a rögzített hosszúságú karakterláncérték tárolására használnak, míg a „Varchar” egy változó hosszúságú adattípus, amelyet változó hosszúságú alfanumerikus adatok tárolására használnak..
A karakterérték tárolási mérete megegyezik az oszlop maximális méretével, amelyet a tábla létrehozásakor deklarált. Másrészt a varchar érték tárolási mérete a bevitt adatok tényleges hossza, nem pedig az oszlop maximális mérete.
Használhatja a char, ha az oszlopban szereplő adatbevitel várhatóan azonos méretű lesz, ellenkezőleg, a varchar használható akkor, amikor az oszlopban szereplő adatbevitel várhatóan eltérő méretű.
Char statikus memóriaelosztást használ, míg varchar dinamikus memóriaelosztást használ
A char változó hossza bármilyen érték lehet 0 és 255 között, míg a varchar változó hossza 0 és 65 535 között lehet..
Az adatbevitel konzisztens char-ban történik, amelyet adatok, például telefonszámok tárolására használnak, míg a varchar változó adatok, például címek tárolására szolgál..
Faszén | varchar |
A rögzített hosszúságú karakterlánc érték tárolására szolgál. | Változó hosszúságú alfanumerikus adatok tárolására szolgál. |
A hossza 0 és 255 között változhat. | A hossza 0 és 65 535 között változhat. |
1 bájt karakterenként kerül tárolásra. | Karakterenként 1 byte-ot vesz igénybe, plusz 1 vagy 2 extra byte-ot a hosszinformációk tárolására. |
A char tárolási mérete megegyezik a deklarált méretével. | A varchar tároló mérete az adott tárolt karakterlánktól függ. |
Statikus memóriaelosztást használ. | Dinamikus memóriaelosztást használ. |
A Char-ot akkor kell használni, ha a változó hossza ismert. | A Varchar csak akkor használható, ha a változó hossza nem ismert. |
Csak karaktereket fogad el. | Mind karaktereket, mind számokat elfogad. |
50 százalékkal gyorsabb, mint Varchar. | Ez lassabb, mint Char. |
A char érték tárolási mérete megegyezik az oszlop maximális méretével. | A varchar érték tárolási mérete megegyezik a bevitt adatok tényleges hosszával, nem pedig az oszlop maximális méretével. |