MySql 数据类型的取值范围
数据引自:http://dev.mysql.com/doc/refman/5.1/zh/column-types.html
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
?
·TINYINT——这个类型最多可容纳三位数。
·SMALLINT——最多可容纳五位数。
·MEDIUMINT——最多可容纳八位数。
·INT——可以容纳十位数。
·BIGINT——最多可容纳二十位数。
2. 时间和日期类型
?
列类型
“零”值
DATETIME
'0000-00-00 00:00:00'
DATE
'0000-00-00'
TIMESTAMP
00000000000000
TIME
'00:00:00'
YEAR
0000
?
?
3. 字符串类型:
CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。
VARCHAR列中的值为可变长字符串。长度可以指定为0到65,535之间的值。(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节)。
下面的表显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别:
?
值
CHAR(4)
存储需求
VARCHAR(4)
存储需求
''
'????'
4个字节
''
1个字节
'ab'
'ab??'
4个字节
'ab '
3个字节
'abcd'
'abcd'
4个字节
'abcd'
5个字节
'abcdefgh'
'abcd'
4个字节
'abcd'
5个字节
?
4. 数值类型存储需求:
?
列类型
存储需求
TINYINT
1个字节
SMALLINT
2个字节
MEDIUMINT
3个字节
INT,?INTEGER
4个字节
BIGINT
8个字节
FLOAT(p)
如果0 <=?p?<= 24为4个字节,?如果25 <=?p?<= 53为8个字节
FLOAT
4个字节
DOUBLE [PRECISION], item?REAL
8个字节
DECIMAL(M,D),?NUMERIC(M,D)
变长;参见下面的讨论
BIT(M)
大约(M+7)/8个字节
?DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值,例如货币数据。当声明该类型的列时,可以(并且通常要)指定精度和标度;例如:
salary DECIMAL(5,2)
5. 日期和时间的存储需求:
?
列类型
存储需求
DATE
3个字节
DATETIME
8个字节
TIMESTAMP
4个字节
TIME
3个字节
YEAR
1个字节
?
?
6. 字符串类型的存储需求:
?
列类型
存储需求
CHAR(M)
M个字节,0?<=?M?<=?255
VARCHAR(M)
L+1个字节,其中L?<=?M?且0?<=?M?<=?65535(参见下面的注释)
BINARY(M)
M个字节,0?<=?M?<=?255
VARBINARY(M)
L+1个字节,其中L?<=?M?且0?<=?M?<=?255
TINYBLOB,?TINYTEXT
L+1个字节,其中L?< 28
BLOB,?TEXT
L+2个字节,其中L?< 216
MEDIUMBLOB,?MEDIUMTEXT
L+3个字节,其中L?< 224
LONGBLOB,?LONGTEXT
L+4个字节,其中L?< 232
ENUM('value1','value2',...)
1或2个字节,取决于枚举值的个数(最多65,535个值)
SET('value1','value2',...)
1、2、3、4或者8个字节,取决于set成员的数目(最多64个成员)
?
?
VARCHAR、BLOB和TEXT类是变长类型。每个类型的存储需求取决于列值的实际长度(用前面的表中的L表示),而不是该类型的最大可能的大小。例如,VARCHAR(10)列可以容纳最大长度为10的字符串。实际存储需求是字符串(L)的长度,加上一个记录字符串长度的字节。对于字符串'abcd',L是4,存储需要5个字节。
注释:VARCHAR列的有效最大长度为65,532字符。
?
?
?
?
?
?
?
?