Top.Mail.Ru
Ответы

Чем отличается тип varchar от char в MySQL? Читал вроде и тот и тот хранит 0-255 количество символов.

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
13лет

char это массив символов статический. то есть сколько укажешь столько и будет занимать
varchar динамический. сколько в него запишешь символов столько и будет занимать

Аватар пользователя
Мастер
13лет

В столбце типа CHAR длина поля постоянна и задается при создании таблицы. Эта длина может принимать любое значение между 1 и 255 (что же касается версии MySQL 3.23, то в ней длина столбца CHAR может быть от 0 до 255). Величины типа CHAR при хранении дополняются справа пробелами до заданной длины. Эти концевые пробелы удаляются при извлечении хранимых величин.

Величины в столбцах VARCHAR представляют собой строки переменной длины. Так же как и для столбцов CHAR, можно задать столбец VARCHAR любой длины между 1 и 255. Однако, в противоположность CHAR, при хранении величин типа VARCHAR используется только то количество символов, которое необходимо, плюс один байт для записи длины. Хранимые величины пробелами не дополняются, наоборот, концевые пробелы при хранении удаляются (описанный процесс удаления пробелов отличается от предусмотренного спецификацией ANSI SQL).

Источник: <noindex><a rel="nofollow" href="http://www.mysql.ru/docs/man/CHAR.html" target="_blank">http://www.mysql.ru/docs/man/CHAR.html</a></noindex>
Аватар пользователя
Знаток
13лет

первый обрезает лишние пробелы. т. е. строка йцукен будет длиной 6 символов в варчаре, а в чаре - все равно 255