本文介绍 MySQL 数据类型,包括数据类型名称、占用字节大小、存储范围、一般用途。
一、数值类型
类型 |
大小 |
范围(有符号) |
范围(无符号) |
用途 |
bit |
1 字节 |
(1, 64) |
(1, 64) |
位字段类型数值 |
tinyint |
1 字节 |
(-128, 127) |
(0, 255) |
小整数值 |
smallint |
2 字节 |
(-32 768, 32 767) |
(0, 65 535) |
大整数值 |
mediumint |
3 字节 |
(-8 388 608, 8 388 607) |
(0, 16 777 215) |
大整数值 |
int / integer |
4 字节 |
(-2 147 483 648, 2 147 483 647) |
(0, 4 294 967 295) |
大整数值 |
bigint |
8 字节 |
(-9 233 372 036 854 775 808, 9 223 372 036 854 775 807) |
(0, 18 446 744 073 709 551 615) |
极大整数值 |
float |
4 字节 |
(-3.402 823 466 E+38, 1.175 494 351 E-38), 0, (1.175 494 351 E-38, 3.402 823 466 351 E+38) |
0, (1.175 494 351 E-38, 3.402 823 466 E+38) |
单精度浮点数值 |
double (real 同义词) |
8 字节 |
(1.797 693 134 862 315 7 E+308, 2.225 073 858 507 201 4 E-308), 0, (2.225 073 858 507 201 4 E-308, 1.797 693 134 862 315 7 E+308) |
0, (2.225 073 858 507 201 4 E-308, 1.797 693 134 862 315 7 E+308) |
双精度浮点数值 |
decimal (numeric 同义词) |
DECIMAL(M,D), 取决于 M 与 D 的值 |
范围等同 |
M 值 <= 65,D 值 <= 30,M 值必须 >= D 值,M 是小数位数(精度)的总数,D 是小数点(标度)后面的位数 |
65 位精度计算数值 |
二、字符串类型
类型 |
大小 |
用途 |
char |
0-255 字节 |
定长字符串 |
varchar |
0-255 字节 |
变长字符串 |
tinyblob |
0-255 字节 |
不超过 255 个字符的二进制字符串 |
tinytext |
0-255 字节 |
短文本字符串 |
blob |
0-65 535 字节 |
二进制形式的长文本数据 |
text |
0-65 535 字节 |
长文本数据 |
mediumblob |
0-16 777 215 字节 |
二进制形式的中等长度文本数据 |
mediumtext |
0-16 777 215 字节 |
中等长度文本数据 |
longblob |
0-4 294 967 295 字节 |
二进制形式的极大文本数据 |
longtext |
0-4 294 967 295 字节 |
极大文本数据 |
binary |
0-255 字节 |
定长二进制字符串 |
varbinary |
0-255 字节 |
变长二进制字符串 |
三、日期和时间类型
类型 |
大小 |
范围 |
格式 |
用途 |
date |
3 字节 |
1000-01-01/9999-12-31 |
YYYY-MM-DD |
日期值 |
time |
3 字节 |
‘-838:59:59’/‘838:59:59’ |
HH : MM : SS |
时间值或持续时间 |
year |
1 字节 |
1901/2155 |
YYYY |
年份值 |
datetime |
8 字节 |
1000-01-01 00:00:00/9999-12-31 23:59:59 |
YYYY-MM-DD HH : MM : SS |
混合日期和时间值 |
timestamp |
8 字节 |
1970-01-01 00:00:00/2037 年某时 |
YYYY-MM-DD HH : MM : SS |
混合日期和时间值,时间戳 |
四、复合类型
类型 |
大小 |
范围 |
格式 |
用途 |
enum |
1 或 2 字节 |
65535 个成员 |
枚举 |
列可赋予某个枚举成员 |
set |
1、2、3、4 或 8 字节 |
64 个成员 |
集合 |
列可赋予多个集合成员 |
(完)