MySQL字段类型
MySQL字段类型
Mysql 的每一个字段都必须有一个数据类型与之对应,Mysql 字段的额数据类型大致可以分为六大类,即整数类型、浮点型、字符型、字符串类型、日期时间类型与其他类型。
MySQL整数类型
类型 |
大小 |
范围(有符号) |
范围(无符号) |
用途 |
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) |
极大整数值 |
MySQL浮点型
类型 |
大小 |
用途 |
FLOAT |
4 字节 |
单精度浮点数值 |
DOUBLE |
8 字节 |
双精度浮点数值 |
DECIMAL |
16 字节 |
整数最大65位,小数最多30位, 如果整数部分超过最大设定的位数,则会自动设置为最大值。 如 decimal(5,2), 表示一共有五位,小数占两位,如果插入数据 1234.11 则结果为 999.99 |
字符型
类型 |
大小 |
用途 |
ENUM |
0-255字节 |
(枚举)单选项字符串数据类型, 使用时,需要给定 固定的几个选项。 存储的时候,只存储其中一个值 |
SET |
0-255字节 |
多选项字符串数据类型, 使用时,需要给定 固定的几个选项。 存储的时候,存储其中若干个值 |
字符串类型
类型 |
大小 |
用途 |
CHAR |
0-255字节 |
定长字符串 |
VARCHAR |
0-65535 字节 |
变长字符串 |
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字节 |
极大文本数据 |
日期和时间类型
类型 |
大小 (字节) |
范围 |
格式 |
用途 |
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 |
4 |
1970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 |
YYYYMMDD HHMMSS |
混合日期和时间值,时间戳 |
其他类型
类型 |
用途 |
BIT |
位类型, 其中M是1-64的数字。 表示使用多少二进制数字来存储数据 |
SERIAL |
bigint unsigned not null auto_increment unique 的一个别名 |
BOOL |
实质是 tinyint(1) 的一个同义词。 其值为0表示false, 否则表示true |