Обидва типи даних в багатьох мовах програмування та системах баз даних, де "char" позначає символи, а "varchar" - змінний символ. Char in C являє собою тип символів, який використовується для зберігання рядкових значень, в основному символів та цілих чисел, що кодуються UTF-8. Варчар, з іншого боку, - це тип даних, який може містити дані будь-якого типу невизначеної довжини. Варчар відноситься до типу даних поля в системі управління базами даних. Хоча вони обидва можуть зберігати значення рядків до максимальної довжини 8000 символів, char вимагає більше місця, ніж варчар. Технічно вони обидва використовуються для зберігання одних і тих же типів даних, але вони відрізняються за способом їх зберігання та отримання. Давайте докладніше розглянемо їх відмінності.
Char - тип даних фіксованої довжини, який використовується для зберігання символів, що не належать до Unicode, звідси і назва (коротке для символу). Він займає один байт простору для кожного символу, кодованого як числа - ті, що кодуються в ASCII. Тип char може також використовуватися для оголошення малих цілих чисел. Для оголошення змінної символу використовується ключове слово 'char', що означає, що один символ зберігається в одному байті.
Як і цілі типи, char може бути підписаний або без підпису. Він може містити підписані значення знаків, що знаходяться від -128 до 127, і залежно від архітектурного розміру, він також може бути непідписаний, зберігаючи значення від 0 до 255. Коли знаки char зберігаються, вони розміщені праворуч з пробілами до заданої довжини . Проміжки проміжків видаляються під час їх отримання.
Наприклад - якщо ви оголосили змінну типу даних char (7), то вона завжди займе 7 байт даних незалежно від того, зберігаєте ви 1 символ або 7 символів, а це означає, що ви можете зберігати максимум 7 символів у стовпці.
Варчар, як випливає з назви, - це тип даних змінної довжини, який може містити будь-який тип даних, довжина якого варіюється від 0 до 65,535. Поле Varchar може зберігати значення будь-якого розміру до певної межі, залежно від бази даних. Його можна визначити або на мовах програмування, або на рівні бази даних. Розмір поля варчара може бути від нуля до максимальної оголошеної довжини поля.
Для оголошення змінного символу використовується ключове слово 'varchar'. Варчар займає змінний простір, а значить, він буде використовувати лише кількість байтів, рівну кількості символів. Це допомагає уникнути марно витрачання місця, оскільки воно лише використовує простір, необхідний для розміру струни. У деяких мовах програмування та системах баз даних будь-який додатковий простір видаляється автоматично з бази даних.
Наприклад - якщо ви оголосите змінну varchar (10), вона буде використовувати кількість байтів, рівну кількості символів. Отже, якщо ви зберігаєте лише один символ, то він займе лише один байт, а якщо ви зберігаєте 10 символів, він займе 10 байт, тим самим уникнути марного простору бази даних.
'Char' - тип даних фіксованої довжини, який використовується для зберігання символьних рядкових значень фіксованої довжини, тоді як 'Varchar' - тип даних змінної довжини, який використовується для зберігання буквено-цифрових даних змінної довжини.
Розмір пам’яті значення символу дорівнює максимальному розміру цього стовпця, який ви оголошуєте під час створення таблиці. З іншого боку, розмір зберігання значення варчара - це фактична довжина введених даних, а не максимальний розмір для цього стовпця.
Ви можете використовувати char, коли очікується, що записи даних у стовпці будуть однакового розміру, а навпаки, varchar можна використовувати, коли очікується, що записи даних у стовпці будуть змінюватися за розміром.
Char використовує статичний розподіл пам'яті, тоді як varchar використовує динамічне розподіл пам'яті
Довжина змінної char може мати будь-яке значення від 0 до 255, тоді як довжина змінної varchar коливається від 0 до 65,535.
Записи даних відповідають графіці, яка використовується для зберігання даних, таких як телефонні номери, тоді як varchar використовується для зберігання різних даних, таких як адреси.
Чар | Варчар |
Використовується для зберігання знаків рядка символів фіксованої довжини. | Використовується для зберігання буквено-цифрових даних різної довжини. |
Довжина коливається від 0 до 255. | Довжина коливається від 0 до 65 555. |
Для зберігання бере 1 байт на символ. | Бере 1 байт на символ плюс 1 або 2 зайвих байта для зберігання інформації про довжину. |
Розмір сховища char такий самий, як задекларований. | Розмір сховища варчара залежить від конкретної рядка, що зберігається. |
Використовує статичний розподіл пам'яті. | Використовується динамічне розподіл пам'яті. |
Char слід використовувати, коли довжина змінної відома. | Варчар слід застосовувати лише тоді, коли довжина змінної не відома. |
Він приймає лише символи. | Він приймає як символи, так і цифри. |
Це на 50 відсотків швидше, ніж Варчар. | Це повільніше, ніж Чар. |
Розмір сховища знаку char дорівнює максимальному розміру стовпця. | Розмір сховища значення вархара дорівнює фактичній довжині введених даних, а не максимальному розміру стовпця. |