varchar列的大小

Add*_*ddi 10 sql-server optimization varchar

在sql server中,如果我将varchar列定义为长度为32或128,它会有所不同吗?

小智 12

VARCHAR是可变字符字段.这意味着它可以将文本数据保存到一定长度.varchar(32)只能容纳32个字符,而varchar(128)可以容纳128个字符.如果我试图将"12345"输入到varchar(3)字段中; 这是将要存储的数据:

"123"

"45"将被"截断"(丢失).

它们在您知道某个字段最多只能(或仅应该)某个长度的情况下非常有用.例如:邮政编码或州名缩写.事实上,它们通常用于几乎所有类型的文本数据(例如名称/地址/等等) - 但在这些情况下,您必须小心,您提供的数字对于将填充的数据类型来说是理智的最大值那一栏.

但是,使用它们时也必须小心,只允许用户输入字段支持的最大字符数.否则,当它截断用户的输入时,可能会造成混淆.

  • 那不是公牛.除了名称和地址之外,我遇到了很多varchar字段,这些字段用excrta进行了分类. (3认同)

Jar*_*ott 4

应该没有明显的差异,因为后端只会存储您插入到该列中的数据量。它不像 char 列那样填充到字段的完整大小。

编辑:有关更多信息,此链接应该很有用。