CHAR,VARCHAR,TEXT是数据库服务器对数据类型进行划分的方式,是数据在数据库中的存放策略,同时为了合理应用数据库存储空间问题。对于Java应用程序,把它们和String类型对应就可以了。
(1)CHAR: 定长格式,长度范围是0~255。当你想要储存一个长度不足255的字符时,MySQL会用空格来填充剩下的字符。因此在读取数据时,CHAR类型的数据要进行处理,把后面的空格去除。
(2)VARCHAR:VARCHAR类型在5.0.3以下的版本中的最大长度限制为255,而在5.0.3及以上的版本中,varchar数据类型的长度支持到了65535,也就是说可以存放65532个字节(注意是字节而不是字符!!!)的数据(起始位和结束位占去了3个字节),也就是说,在5.0.3以下版本中需要使用固定的TEXT或BLOB格式存放的数据,可以在高版本中使用可变长的varchar来存放,这样就能有效的减少数据库文件的大小。
(3)TEXT:不可以有默认值,其最大长度是2的16次方-1
总结:
- 经常变化的字段用varchar
- 知道固定长度的用char
- 尽量用varchar
- 超过255字符的只能用varchar或者text
- 能用varchar的地方不用text