decimal
精度比较高的东西,比如money,我会用decimal类型,不会考虑float,double,因为他们容易产生误差,
DECIMAL列的声明语法是DECIMAL(M,D)。在MySQL 5.1中,参量的取值范围如下:
· M是数字的最大数(精度)。其范围为1~65(在较旧的MySQL版本中,允许的范围是1~254)。
· D是小数点右侧数字的数目(标度)。其范围是0~30,但不得超过M。
说明:float占4个字节,double占8个字节,decimail(M,D)占M+2个字节。
如DECIMAL(5, 2) 的最大值为9 9 9 9 . 9 9,因为有7 个字节可用。
Char,定长字符串
格式:char(L)
L指字符数,小于等于255
不能插入超过长度的字符串
思考:我们插入一个中文字可以吗?
可以插入一个中文字。
MYSQL的char型它定的长度,是字符数,不是字节数!
Varchar,可变长度字符串
格式:varchar(L)
L<65535,具体大小和编码有关!
L是几,就可以存几个字母或者相同数量的汉字。
保存的时候,字符的实际长度+1【<255】或者+2字节【255<L<65535】(用于保存字符的实际长度)
建议:长度大于255时,就用text类型。
Utf8下:
同样可知,char型长度必须小于255/3-1
Gbk下:
同样可知,char型长度必须小于255/2-1
本文转自 hgditren 51CTO博客,原文链接:http://blog.51cto.com/phpme/1406380,如需转载请自行联系原作者