MySQL数据类型包括
1.整数类型,浮点数类型和定点数类型
2.时间和日期类型
3.字符串类型
4.二进制类型
整数类型
标准的SQL中支持INTEGER,SMALLINT这两类整数类型,MySQL除了这两个还有其他的,见下表
类型 | 大小 | 范围(有符号) | 范围(无符号) | 默认宽度 |
---|---|---|---|---|
TINYINT | 1 字节 | (-128,127) | (0,255) | 4 |
SMALLINT | 2 字节 | (-32 768,32 767) | (0,65 535) | 6 |
MEDIUMINT | 3 字节 | (-8 388 608,8 388 607) | (0,16 777 215) | 8 |
INT或INTEGER | 4 字节 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 11 |
BIGINT | 8 字节 | (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 20 |
为什么TINYINT的无符号范围是(0,255),因为TINYINT的占1个字节,1个字节是8位,那么TINYINT无符号数最大值就是28-1,即255,TINYINT有符号数最大值是27-1,即127.
同理,其他类型也是这么算的
MySQL支持数据类型的名称后面显示宽度,其基本形式为 数据类型(宽度值)
问:为什么TINYINT的默认宽度是4,而不是3,最大值是255吗?
答:如果是有符号的情况,就会有-128的值,它的宽度是4.
原文:http://www.cnblogs.com/xiaozong/p/5674725.html