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

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

10 голосов
/ 07 октября 2008

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

Ответы [ 3 ]

12 голосов
/ 07 октября 2008

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

"123"

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

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

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

4 голосов
/ 07 октября 2008

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

4 голосов
/ 07 октября 2008

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

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

...