MySQL数值类型
严格数值类型:Integer,Smallint,Decimal,Numeric;
近似值类型:Float,Real,Double,Precision
MySQL整形数据类型
对于有符号的整形数据类型,范围为(-2^(n*8-1),2^(n*8-1) - 1) n为字节数
对于无符号的整形数据类型,范围为(0,2^n*8 - 1) n为字节数
整数类型 | 字节 |
---|---|
TINYINT | 1 |
SMALLINT | 2 |
MEDIUMINT | 3 |
INT | 4 |
BIGINT | 8 |
MySQL浮点数据类型
所有的浮点型数在存储中都有三个部分组成:1.符号位 2.指数位 3.尾数部分
FLOAT和DOUBLE的精度与尾数的位数有关。
浮点型最终会被按一个二进制科学计数法存储
即:1.xxxx*2^n xxxx为尾数部分,n为指数位
浮点数类型 | 字节 | 组成 |
---|---|---|
FLOAT | 4 | 符号位(1bit)、指数位(8bit)、尾数位(23bit) |
DOUBLE | 8 | 符号位(1bit)、指数位(11bit)、尾数位(52bit) |
MySQL定点数类型
定点数类型 | 字节 | 描述 |
---|---|---|
DEC(M,D) 与 DECIMAL(M,D) | M+2 | 最大取值范围与DOOUBLE相同,给定DECIMAL的有效取值范围由M和D决定 |
注:DEC是DECIMAL的缩写。
MySQL位类型
位类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
BIT(M) | 1~8 | BIT(1) | BIT(64) |
参考资料:《深入浅出MySQL》