数字类型
列类型 |
需要的存储量 |
范围 |
TINYINT |
1 字节 |
有符号的范围是-128到127,无符号的范围是0到255 |
SMALLINT |
2 个字节 |
有符号的范围是-32768到32767,无符号的范围是0到65535 |
MEDIUMINT |
3 个字节 |
有符号的范围是-8388608到8388607,无符号的范围是0到16777215 |
INT |
4 个字节 |
有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295 |
INTEGER |
4 个字节 |
INT的一个同义词 |
BIGINT |
8 个字节 |
有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615 |
FLOAT(X) |
4 如果 X < = 24 或 8 如果 25 < = X < = 53 |
一个小(单精密)浮点数字。不能无符号。允许的值是-3.402823466E+38到-1.175494351E-38,0 和 1.175494351E-38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24 的一个 参数表示一个单精密浮点数字。 |
FLOAT |
4 个字节 |
|
DOUBLE |
8 个字节 |
一个正常大小(双精密)浮点数字。不能无符号。 允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。 |
DOUBLE PRECISION |
8 个字节 |
|
REAL |
8 个字节 |
这些是DOUBLE同义词 |
DECIMAL(M,D) |
M 字节(D +2 , 如果M < D ) |
一个未压缩(unpack)的浮点数字。不能无符号。行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符 |
NUMERIC(M,D) |
M 字节(D +2 , 如果M < D ) |
这是DECIMAL的一个同义词 |
日期和时间类型
列类型 |
需要的存储量 |
备注 |
DATE |
3 个字节 |
1000-01-01~9999-12-31 3字节(MySQL3.23版以前是4字节 ) 0000-00-00 |
DATETIME |
8 个字节 |
1000-01-01 00:00:00~9999-12-31 23:59:59 8字节 0000-00-00 00:00:00 |
TIMESTAMP |
4 个字节 |
19700101000000~2037年的某个时刻 4字节 00000000000000 |
TIME |
3 个字节 |
-838:59:59~838:59:59 3字节 00:00:00 |
YEAR |
1 字节 |
YEAR(4):1901~2155 YEAR(2):1970~2069 1字节 0000 |
串类型
列类型 |
需要的存储量 |
备注 |
CHAR(M) |
M 字节,1 <= M <= 255 |
|
VARCHAR(M) |
L +1 字节, 在此L <= M 和1 <= M <= 255 |
|
TINYBLOB , TINYTEXT |
L +1 字节, 在此L < 2 ^ 8 |
最大长度为255(2^8-1)个字符 |
BLOB , TEXT |
L +2 字节, 在此L < 2 ^ 16 |
最大长度为65535(2^16-1)个字符 |
MEDIUMBLOB , MEDIUMTEXT |
L +3 字节, 在此L < 2 ^ 24 |
最大长度为16777215(2^24-1)个字符 |
LONGBLOB , LONGTEXT |
L +4 字节, 在此L < 2 ^ 32 |
最大长度为4294967295(2^32-1)个字符 |
ENUM('value1','value2',...) |
1 或 2 个字节, 取决于枚举值的数目(最大值65535) |
|
SET('value1','value2',...) |
1,2,3,4或8个字节, 取决于集合成员的数量(最多64个成员) |
|
ZEROFILL属性适用于所有数值类数据列类型,作用是,如果数值的宽度小于定义的显示宽度,则在数值前填充0。 UNSIGNED属性不允许数据列出现负数。 AUTO_INCREMENT属性可生成独一无二的数字序列。只对整数类的数据列有效。 NULL和NOT NULL属性设置数据列是否可为空。 DEFAULT属性可为数据列指定默认值。 |