Char и Varchar

Anonim

Оба являются типами данных во многих языках программирования и системах баз данных, где «char» относится к символу, а «varchar» относится к переменному символу. Char в C представляет тип символа, который используется для хранения строковых значений, в основном кодированных символов UTF-8 и целых чисел. Varchar, с другой стороны, является типом данных, который может содержать данные любого типа неопределенной длины. Varchar ссылается на тип данных поля в системе управления базами данных. Хотя оба они могут хранить строковые значения до максимальной длины 8000 символов, char требует больше памяти, чем varchar. Технически они оба используются для хранения данных того же типа, но они отличаются тем, как они хранятся и извлекаются. Давайте подробно рассмотрим их различия.

Что такое Шар?

Char - тип данных фиксированной длины, который используется для хранения символов, отличных от Юникода, отсюда и название (сокращение от символа). Он занимает один байт пространства для каждого символа, который кодируется как числа - те, которые кодируются ASCII. Тип char также может использоваться для объявления небольших целых чисел. Чтобы объявить символьную переменную, используется ключевое слово «char», что означает, что один символ хранится в одном байте.

Подобно целым типам, char может быть подписан или без знака. Он может хранить знаковые значения знака от -128 до 127 и в зависимости от архитектурного размера, он также может быть неподписанным, сохраняя значения в диапазоне от 0 до 255. Когда значения символа сохраняются, они заполняются с пробелами до указанной длины, Заканчивающиеся пробелы удаляются при их восстановлении.

Например, если вы объявляете переменную типа данных char (7), она всегда будет содержать 7 байтов данных независимо от того, сохраняете ли вы 1 символ или 7 символов, а это означает, что вы можете хранить не более 7 символов в столбце.

Что такое Varchar?

Varchar, как следует из названия, представляет собой тип данных переменной длины, который может содержать любой тип данных с длиной от 0 до 65535. Поле Varchar может хранить значения любого размера до определенного предела, в зависимости от базы данных. Его можно определить либо в языках программирования, либо на уровне базы данных. Размер поля varchar может быть от нуля до максимальной объявленной длины поля.

Чтобы объявить символ переменной, используется ключевое слово 'varchar'. Varchar принимает переменное пространство, что означает, что он будет использовать только количество байтов, равное количеству символов. Это помогает избежать потери пространства, поскольку он использует только пространство, необходимое для размера струны. В некоторых языках программирования и системах баз данных любое дополнительное пространство автоматически удаляется из базы данных.

Например, если вы объявите переменную varchar (10), она будет использовать количество байтов, равное количеству символов. Итак, если вы сохраняете только один символ, тогда он будет принимать только один байт, и если вы будете хранить 10 символов, это займет 10 байт, что позволит избежать потери пространства базы данных.

Разница между Чар и Варшаром

  1. Тип данных

«Char» - это тип данных фиксированной длины, который используется для хранения значения символьной строки фиксированной длины, тогда как «Varchar» - это тип данных переменной длины, который используется для хранения буквенно-цифровых данных переменной длины.

  1. Размер хранилища

Размер хранилища символьного значения равен максимальному размеру этого столбца, который вы объявляете при создании таблицы. С другой стороны, размер хранилища значения varchar - это фактическая длина введенных данных, а не максимальный размер для этого столбца.

  1. Записи данных

Вы можете использовать char, когда ожидается, что записи данных в столбце будут одного размера, а, наоборот, varchar может использоваться, когда ожидается, что записи данных в столбце будут отличаться по размеру.

  1. Выделение памяти

Char использует статическое распределение памяти, в то время как varchar использует динамическое распределение памяти

  1. длина

Длина переменной char может иметь любое значение от 0 до 255, а длина переменной varchar - от 0 до 65535.

  1. заявка

Записи данных согласованы в символе, который используется для хранения данных, таких как номера телефонов, тогда как varchar используется для хранения различных данных, таких как адреса.

Чар против Варчара

голец Varchar
Используется для хранения значения символьной строки фиксированной длины. Используется для хранения буквенно-цифровых данных переменной длины.
Длина варьируется от 0 до 255. Длина варьируется от 0 до 65535.
Принимает 1 байт на символ для хранения. Принимает 1 байт на символ плюс 1 или 2 дополнительных байта для хранения информации о длине.
Размер хранилища char совпадает с объявленным. Размер хранилища varchar зависит от конкретной сохраненной строки.
Использует статическое распределение памяти. Использует динамическое распределение памяти.
Char следует использовать, когда длина переменной известна. Varchar следует использовать только тогда, когда длина переменной неизвестна.
Он принимает только символы. Он принимает оба символа и цифры.
Это на 50 процентов быстрее, чем Varchar. Это медленнее, чем Шар.
Размер хранилища значения char равен максимальному размеру столбца. Размер хранилища значения varchar равен фактической длине введенных данных, а не максимальному размеру столбца.

Резюме

  • Оба «Char» и «Varchar» - это типы данных в языках программирования и системах баз данных, которые имеют общие черты с точки зрения функциональности и технических характеристик. Однако они значительно различаются, как то, как они хранятся и извлекаются.
  • Хотя char фактически ссылается на символ, varchar ссылается на переменный символ. Как следует из названия, char - тип данных фиксированной длины, а varchar - тип данных переменной длины.
  • Char принимает до 1 байт на символ, тогда как varchar также занимает до 1 байт на символ плюс дополнительные 1 или 2 байта для хранения информации о длине. Для char длина варьируется от 0 до 255, а для varchar - от 0 до 65535.
  • Поскольку char имеет фиксированную длину, любое оставшееся место в поле заполняется пробелами. Varchar, с другой стороны, имеет переменную длину, поэтому он содержит только те персонажи, которые вы ему назначили.
  • Остальные символы заполняются пробелами, когда значения хранятся в полях «char», тогда как «varchar» не добавляет лишних пробелов, когда вы предоставляете меньше данных, чем указанная длина.