Размер столбцов varchar

В sql-сервере это имеет значение, если я определяю столбцы varchar длиной 32 или 128?

Ответ 1

A varchar - это поле переменной символов. Это означает, что он может хранить текстовые данные на определенной длине. Varchar (32) может содержать только 32 символа, тогда как varchar (128) может содержать 128 символов. Если я попытался ввести "12345" в поле varchar (3); это данные, которые будут сохранены:

"123"

"45" будет "усечен" (потерян).

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

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

Ответ 2

Не должно быть заметной разницы, поскольку бэкэнд будет хранить только объем данных, которые вы вставляете в этот столбец. Он не заполняется до полного размера поля, как в столбце char.

Изменить: для получения дополнительной информации эта ссылка должна быть полезна.

Ответ 3

Не следует. Он просто определяет максимальную длину, которую он может разместить, фактическая используемая длина зависит от вставленных данных.