现在做的项目在用MySQL,这里总结一下MySQL的数据类型。
1.整数
可选参数M表示查询结果中数据列的最大显示宽度,对取值没有影响.
|
数据类型 |
范围(有符号) |
范围(无符号) |
存储需求 |
|
TINYINT(M) |
-128~127(2^7-1) |
0~255(2^8-1) |
8位整数,占1个字节 |
|
SMALLINT(M) |
-32768~32767(2^15-1) |
0~65535(2^16-1) |
16位整数,占2个字节 |
|
MEDIUMINT(M) |
-8388608~8388607(2^23-1) |
0~16777215(2^24-1) |
24位整数,占3个字节 |
|
INT(M) |
-2147483648~ 2147483647(2^31-1) |
0~4294967295(2^32-1) |
32位整数,占4个字节 |
|
BIGINT(M) |
-9223372036854775808~ 9223372036854775807(2^63-1) |
(2^64-1) |
64位整数,占8个字节 |
2.浮点数
M是十进制数的总个数(包括小数点后面数字的个数),D是小数点后面的数字个数,M>=D,参数M只显示数值的显示效果,对数值的精度没有影响,参数D会对数值作四舍五入,比如FLOAT(6,2)或DOUBLE(6,2),如果插入1111.1254,则会取值1111.13;如果插入1111.1244,则会取值1111.12;如果插入的数字在截取小数后长度超过总长度M,比如插入11211.1254,则会出错,插入的数字变成总长度为M、小数点后面位数为D的最大数字,也就是9999.99。
下面的范围只是理论值,具体值与硬件或操作系统有关。
|
数据类型 |
范围 |
说明 |
|
FLOAT[(M,D)] |
-3.402823466E+38 ~ -1.175494351E-38, 0,和1.175494351E-38 ~ 3.402823466E+38 |
8位精度,占4个字节 |
|
DOUBLE[(M,D)] |
-1.7976931348623157E+308 ~ - 2.2250738585072014E-308, 0,和2.2250738585072014E-308~ 1.7976931348623157E+308 |
16位精度,占8个字节 |
3.定点数
|
数据类型 |
范围 |
存储需求 |
|
DECIMAL[(M,D)] |
M表示数字总个数,最大值是65,默认为0; D表示小数点后面的数字总个数,最大值是30,默认为0; |
以字符串形式来存放定点数,M>=D,参数D会对数值作四舍五入,比如DECIMAL(6,2),如果插入1111.1254,则会取值1111.13;如果插入1111.1244,则会取值1111.12; 如果插入的数字在截取小数后长度超过总长度M,比如插入11211.1254,则会出错,插入的数字变成总长度为M、小数点后面位数为D的最大数字,也就是9999.99。 |
4.字符串
|
数据类型 |
范围 |
说明 |
|
CHAR(N) |
最多2^8-1=255个字符 |
固定长度的字符串 |
|
VARCHAR(N) |
最多2^16-1=65535个字符 |
可变长度的字符串,VARCHAR最大字符长度必须在声明列时设置,超长的字符串将在存储时截断。 |
|
TINYTEXT |
最多2^8-1=255个字符 |
可变长度的字符串,不允许设置最大长度。 |
|
TEXT |
最多2^16-1=65535个字符 |
可变长度的字符串,不允许设置最大长度。 |
|
MEDIUMTEXT |
最多2^24-1= 16777215个字符 |
可变长度的字符串,不允许设置最大长度。 |
|
LONGTEXT |
最多2^32-1= 4294967295个字节, |
可变长度的字符串,不允许设置最大长度。 |
5.二进制
|
数据类型 |
范围 |
说明 |
|
BIT(N) |
最多64位 |
存放二进制数据,N是二进制的位数. |
|
TINYBLOB |
最多2^8-1=255个字节 |
可变长度二进制数据 |
|
BLOB |
最多2^16-1=65535个字节 |
可变长度二进制数据 |
|
MEDIUMBLOB |
最多2^24-1= 16777215个字节 |
可变长度二进制数据 |
|
LONGBLOB |
最多2^32-1= 4294967295个字节 |
可变长度二进制数据 |
6.日期与时间
|
数据类型 |
范围 |
说明 |
|
DATE |
1000-01-01~9999-12-31 |
占3个字节,格式是YYYY-MM-DD |
|
DATETIME |
1000-01-01 00:00:00 ~9999-12-31 23:59:59 |
占8个字节,格式是YYYY-MM-DD HH:MM:SS |
|
TIMESTAMP |
1970-01-01 00:00:00 ~ 2037 |
占4个字节,格式是YYYY-MM-DD HH:MM:SS; 不要选用TIMESTAMP数据列来保存“真正的”日期/时间数据,那么做的最佳选择是DATETIME数据类型。 |
|
TIME |
-838:59:59 ~ 838:59:59 |
占3个字节,格式是HH:MM:SS |
|
YEAR |
1901 ~ 2155 |
占1个字节,格式是YYYY |
7.集合
|
数据类型 |
范围 |
说明 |
|
ENUM |
最多65535个成员 |
字符串的排列集合。 |
|
SET |
最多255个成员 |
字符串的组合集合,不赞成使用ENUM或SET作为数据类型,因为不方便数据迁移。 |
本文详细介绍了MySQL中的数据类型,包括整数、浮点数、定点数、字符串、二进制、日期与时间以及集合等类别,并提供了每种类型的具体范围和存储需求。

5756

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



