Obidva typy údajov sú v mnohých programovacích jazykoch a databázových systémoch, kde „char“ označuje znak a „varchar“ označuje variabilný znak. Char in C predstavuje typ znaku, ktorý sa používa na ukladanie hodnôt reťazca, väčšinou znakov a celých čísel kódovaných UTF-8. Na druhej strane Varchar je dátový typ, ktorý môže obsahovať údaje ľubovoľného druhu neurčitej dĺžky. Varchar označuje dátový typ poľa v systéme správy databázy. Aj keď obidve môžu ukladať hodnoty reťazcov až do maximálnej dĺžky 8 000 znakov, znak char vyžaduje viac ukladacieho priestoru ako varchar. Technicky sa používajú na ukladanie rovnakých typov údajov, líšia sa však spôsobom, akým sú ukladané a získavané. Pozrime sa podrobne na ich rozdiely.
Char je dátový typ s pevnou dĺžkou, ktorý sa používa na ukladanie znakov mimo Unicode, odtiaľ názov (skratka pre znak). Zaberá jeden bajt miesta pre každý znak, ktorý je kódovaný ako čísla - tie z kódovania ASCII. Typ char sa dá použiť aj na deklarovanie malých celých čísel. Na deklarovanie znakovej premennej sa používa kľúčové slovo „char“, čo znamená, že jeden znak je uložený v jednom bajte.
Rovnako ako celočíselné typy, znak char môže byť podpísaný alebo nepodpísaný. Môže uchovávať podpísané hodnoty char v rozsahu od -128 do 127 a v závislosti od architektonickej veľkosti môže byť tiež nepodpísané, pričom môže uchovávať hodnoty v rozsahu od 0 do 255. Keď sa hodnoty char ukladajú, sú správne vyplnené medzerami na zadanú dĺžku. , Zadné medzery sa odstránia po ich získaní.
Napríklad - ak deklarujete typ údajov s premennou char (7), bude vždy trvať 7 bajtov údajov bez ohľadu na to, či ukladáte 1 znak alebo 7 znakov, čo znamená, že do stĺpca môžete uložiť maximálne 7 znakov..
Varchar, ako názov napovedá, je dátový typ s premenlivou dĺžkou, ktorý môže obsahovať akýkoľvek typ údajov s dĺžkou pohybujúcou sa od 0 do 65 535. Pole Varchar môže ukladať hodnoty ľubovoľnej veľkosti až do určitého limitu v závislosti od databázy. Môže byť definovaný buď v programovacích jazykoch alebo na úrovni databázy. Veľkosť poľa varchar môže byť od nuly po maximálnu deklarovanú dĺžku poľa.
Na vyhlásenie premenného sa používa kľúčové slovo „varchar“. Varchar zaberá variabilný priestor, čo znamená, že použije iba počet bajtov rovný počtu znakov. Pomáha predchádzať plytvaniu priestorom, pretože využíva iba priestor potrebný na veľkosť struny. V niektorých programovacích jazykoch a databázových systémoch sa z databázy automaticky odstráni akýkoľvek ďalší priestor.
Napríklad - ak deklarujete premennú varchar (10), použije sa počet bajtov rovný počtu znakov. Ak teda ukladáte iba jeden znak, bude to trvať iba jeden bajt a ak ukladáte 10 znakov, bude to trvať 10 bajtov, čím sa zabráni plytvaniu databázovým priestorom..
„Char“ je dátový typ s pevnou dĺžkou, ktorý sa používa na ukladanie hodnoty reťazca znakov s pevnou dĺžkou, zatiaľ čo „Varchar“ je dátový typ s premenlivou dĺžkou, ktorý sa používa na ukladanie alfanumerických údajov s variabilnou dĺžkou..
Veľkosť úložiska znakovej hodnoty sa rovná maximálnej veľkosti tohto stĺpca, ktorú deklarujete pri vytváraní tabuľky. Na druhej strane veľkosť úložiska hodnoty varchar je skutočná dĺžka zadaných údajov, nie maximálna veľkosť tohto stĺpca..
Môžete použiť znak char, keď sa očakáva, že položky údajov v stĺpci budú mať rovnakú veľkosť, zatiaľ čo naopak, varchar sa môže použiť, keď sa očakáva, že položky údajov v stĺpci sa budú meniť vo veľkosti..
Char používa pridelenie statickej pamäte, zatiaľ čo varchar používa dynamické pridelenie pamäte
Dĺžka premennej char môže mať akúkoľvek hodnotu od 0 do 255, zatiaľ čo dĺžka premennej varchar je v rozsahu od 0 do 65 535.
Zadávanie údajov je konzistentné v znaku, ktorý sa používa na ukladanie údajov, ako sú telefónne čísla, zatiaľ čo varchar sa používa na ukladanie rôznych údajov, ako sú adresy..
spáliť | varchar |
Používa sa na ukladanie hodnoty reťazca znakov s pevnou dĺžkou. | Používa sa na ukladanie alfanumerických údajov rôznej dĺžky. |
Dĺžka sa pohybuje od 0 do 255. | Dĺžka sa pohybuje od 0 do 65 535. |
Na uloženie zaberá 1 bajt na znak. | Na uloženie informácií o dĺžke trvá 1 bajt na znak plus 1 alebo 2 bajty navyše. |
Veľkosť úložiska char je rovnaká ako v deklarovanom stave. | Veľkosť úložiska varchar závisí od konkrétneho uloženého reťazca. |
Používa statické pridelenie pamäte. | Používa dynamické prideľovanie pamäte. |
Znak by sa mal použiť, keď je známa dĺžka premennej. | Varchar by sa mal používať iba vtedy, ak nie je známa dĺžka premennej. |
Prijíma iba znaky. | Prijíma znaky aj čísla. |
Je to o 50 percent rýchlejšie ako Varchar. | Je pomalší ako Char. |
Veľkosť úložiska hodnoty char sa rovná maximálnej veľkosti stĺpca. | Veľkosť úložiska hodnoty varchar sa rovná skutočnej dĺžke zadaných údajov, nie maximálnej veľkosti stĺpca. |