存档

文章标签 ‘char’

MySQL类型长度误区

2014年1月14日 没有评论

今天又碰到这种疑问,老调重弹,记录一下:
1、数值类型中指定的长度仅用于展示,不是值域限制。值域限制仅与类型及是否带符号有关,具体如下:
类型 字节 最小值 最大值
(带符号的/无符号的) (带符号的/无符号的)
TINYINT 1 -128 127
0 255
SMALLINT 2 -32768 32767
0 65535
MEDIUMINT 3 -8388608 8388607
0 16777215
INT 4 -2147483648 2147483647
0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615

2、字符串类型中(char和varchar),指定的长度为字符数,不是字节数,与列的字符集有关。
比如:MySQL必须为一个CHAR(10) CHARACTER SET utf8列预备30个字节,因为这是可能的最大长度。而VARCHAR(10)是动态的,只占1+3*实际字符数。

分类: 工作 标签: , , , ,