分析MySQL数据类型的长度
MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECIMAL(Length, Decimals)。
然而,这些数据类型的长度,并不是都指数据的大小。具体说就是:
(1)CHAR、VARCAHR的长度是指字符的长度,例如CHAR[3]则只能放字符串"123",如果插入数据"1234",则从高位截取,变为"123"。 VARCAHR同理。
(2)TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT的长度,其实和数据的大小无关!Length指的是显示宽度,举个例子:
附录 常见MySQL数据类型(留作备忘)
|
类 型 |
大 小 |
描 述 |
|
CAHR(Length) |
Length字节 |
定长字段,长度为0~255个字符 |
|
VARCHAR(Length) |
String长度+1字节或String长度+2字节 |
变长字段,长度为0~65 535个字符 |
|
TINYTEXT |
String长度+1字节 |
字符串,最大长度为255个字符 |
|
TEXT |
String长度+2字节 |
字符串,最大长度为65 535个字符 |
|
MEDIUMINT |
String长度+3字节 |
字符串,最大长度为16 777 215个字符 |
|
LONGTEXT |
String长度+4字节 |
字符串,最大长度为4 294 967 295个字符 |
|
TINYINT(Length) |
1字节 |
范围:-128~127,或者0~255(无符号) |
|
SMALLINT(Length) |
2字节 |
范围:-32 768~32 767,或者0~65 535(无符号) |
|
MEDIUMINT(Length) |
3字节 |
范围:-8 388 608~8 388 607,或者0~16 777 215(无符号) |
|
INT(Length) |
4字节 |
范围:-2 147 483 648~2 147 483 647,或者0~4 294 967 295(无符号) |
|
BIGINT(Length) |
8字节 |
范围:-9 223 372 036 854 775 808~9 223 372 036 854 775 807,或者0~18 446 744 073 709 551 615(无符号) |
|
FLOAT(Length, Decimals) |
4字节 |
具有浮动小数点的较小的数 |
|
DOUBLE(Length, Decimals) |
8字节 |
具有浮动小数点的较大的数 |
|
DECIMAL(Length, Decimals) |
Length+1字节或Length+2字节 |
存储为字符串的DOUBLE,允许固定的小数点 |
|
DATE |
3字节 |
采用YYYY-MM-DD格式 |
|
DATETIME |
8字节 |
采用YYYY-MM-DD HH:MM:SS格式 |
|
TIMESTAMP |
4字节 |
采用YYYYMMDDHHMMSS格式;可接受的范围终止于2037年 |
|
TIME |
3字节 |
采用HH:MM:SS格式 |
|
ENUM |
1或2字节 |
Enumeration(枚举)的简写,这意味着每一列都可以具有多个可能的值之一 |
|
SET |
1、2、3、4或8字节 |
与ENUM一样,只不过每一列都可以具有多个可能的值 |
MySQL数据类型详解
本文详细解析了MySQL中各种数据类型的特性及其长度含义,包括字符类型(如CHAR、VARCHAR)、整数类型(如TINYINT、INT)及浮点数类型(如FLOAT、DOUBLE)。特别指出某些类型指定的“长度”并非实际数据大小。
5512

被折叠的 条评论
为什么被折叠?



