看过好多书和资料都说varchar是可变类型 当长度不够了会自动增加
书本应该是说随着字符串长度的改变,长度会随着改变吧
比如定义一个字段 sname varchar(20),如果是‘张三丰’ 占6个长度,如果是'肖邦'就只分配4个长度,这样根据字段值变换分配长度,可以节约存储空间,并不是说字段值超过20个长度,也会自动增长!

解决方案 »

  1.   


    所说的可变,是指在你定义的长度范围内是可变的,你定义一个 varchar(20) , 这里的 20 是最大长度,你写入一个 长为 10 的字符串,他就占用了 10 字节的空间,你更新成了一个长度为 5 的串,他就占 5 个字节的长度。你可以结合  char(20) ,来比较一下char(20) 你写了一个长度为 10 的串,他前位是你的串内容,后10位是空格,总共 20 位,也就是大家常说的定长。