И двете са типове данни в много езици за програмиране и системи от бази данни, където „char“ се отнася до символи, а „varchar“ се отнася до променлив символ. Char in C представлява символния тип, който се използва за съхраняване на низови стойности, предимно UTF-8 кодирани символи и цели числа. Varchar, от друга страна, е тип данни, който може да съдържа данни от всякакъв вид неопределена дължина. Варчар се отнася до тип данни от поле в система за управление на база данни. Въпреки че и двамата могат да съхраняват низови стойности до максимална дължина от 8000 знака, char изисква повече съхранение от varchar. Технически и двете се използват за съхранение на едни и същи видове данни, но се различават по начина, по който се съхраняват и извличат. Нека разгледаме подробно техните разлики.
Char е тип данни с фиксирана дължина, който се използва за съхранение на символи, които не са Unicode, оттук и името (кратко за символ). Той заема по един байт пространство за всеки символ, които са кодирани като числа - тези от ASCII кодирането. Типът char може да се използва и за деклариране на малки цели числа. За деклариране на знакова променлива се използва ключовата дума 'char', което означава, че един знак се съхранява в един байт.
Подобно на целочислените типове, char може да бъде подписан или неподписан. Той може да съдържа подписани знаци за диапазон от -128 до 127 и в зависимост от архитектурния размер, той също може да бъде неподписан, като държи стойности, вариращи от 0 до 255. Когато стойностите на char се съхраняват, те са подплатени вдясно с интервали до определената дължина , Проследяващите пространства се премахват при извличането им.
Например - ако декларирате променлива от тип данни на char (7), то винаги ще отнеме 7 байта данни, независимо дали съхранявате 1 знак или 7 знака, което означава, че можете да съхранявате максимум 7 знака в колоната.
Varchar, както подсказва името, е тип данни с променлива дължина, който може да съдържа всякакъв тип данни с дължина, варираща от 0 до 65,535. Varchar поле може да съхранява стойности от всякакъв размер до определена граница, в зависимост от базата данни. Може да се дефинира или на езици за програмиране, или на ниво база данни. Размерът на varchar полето може да бъде от нула до максималната декларирана дължина на полето.
За деклариране на променлив символ се използва ключовата дума 'varchar'. Варчар заема променливо пространство, което означава, че ще използва само броя на байтовете, равен на броя на знаците. Той помага за избягване на разхищаването на пространството, тъй като само използва пространството, необходимо за размера на струната. В някои езици за програмиране и системи от бази данни всяко допълнително пространство се премахва автоматично от базата данни.
Например - ако декларирате променлива на varchar (10), тя ще използва броя на байтовете, равен на броя на знаците. Така че, ако съхранявате само един символ, то ще отнеме само един байт, а ако съхранявате 10 знака, ще отнеме 10 байта, като по този начин ще избегнете разхищаването на пространството в базата данни.
'Char' е тип данни с фиксирана дължина, който се използва за съхранение на символен низ от фиксирана дължина, докато 'Varchar' е тип данни с променлива дължина, който се използва за съхраняване на буквено-цифрови данни с променлива дължина.
Размерът на съхранението на символната стойност е равен на максималния размер на тази колона, която декларирате, докато създавате таблицата. От друга страна, размерът на паметта на стойността на varchar е действителната дължина на въведените данни, а не максималният размер за тази колона.
Можете да използвате char, когато записите на данни в колона се очаква да бъдат с еднакъв размер, докато напротив, varchar може да се използва, когато се очаква вписванията на данни в колона да варират по размер.
Чар използва статично разпределение на паметта, докато varchar използва динамично разпределение на паметта
Дължината на променливата char може да бъде от всяка стойност от 0 до 255, докато дължината на променливата varchar варира от 0 до 65,535.
Вписванията за данни са последователни в класация, която се използва за съхранение на данни като телефонни номера, докато varchar се използва за съхранение на различни данни като адреси.
овъглявам | VARCHAR |
Използва се за съхраняване на стойност на символния низ с фиксирана дължина. | Използва се за съхранение на буквено-цифрови данни с променлива дължина. |
Дължината варира от 0 до 255. | Дължината варира от 0 до 65 555. |
Заема 1 байт на символ за съхранение. | Заема 1 байт на символ плюс 1 или 2 допълнителни байта за съхранение на информация за дължината. |
Размерът на съхранението на char е същият като декларирания. | Размерът на съхранението на varchar зависи от съхранения специфичен низ. |
Използва статично разпределение на паметта. | Използва динамично разпределение на паметта. |
Char трябва да се използва, когато е известна дължината на променливата. | Varchar трябва да се използва само когато дължината на променливата не е известна. |
Той приема само знаци. | Той приема както знаци, така и цифри. |
Той е с 50 процента по-бърз от Варчар. | По-бавно е от Чар. |
Размерът на съхранението на стойността char е равен на максималния размер за колоната. | Размерът на съхранението на стойността на varchar е равен на действителната дължина на въведените данни, а не на максималния размер за колоната. |