MySQL数字类型学习笔记
数字类型
最近在看《MySQL技术内幕:SQL编程》并做了笔记,所以本博客是一篇笔记类型博客,分享出来方便自己复习,也可以帮助他人
- 整型
类型 | 占用空间 | 最小值(SIGNED) | 最大值(SIGNED) | 最小值(UNSIGNED) | 最大值(UNSIGNED) |
---|---|---|---|---|---|
TINYINT | 1 | -128 | 127 | 0 | 255 |
SMALLINT | 2 | -32768 | 32767 | 0 | 65535 |
MEDIUMINT | 3 | -8388608 | 8388607 | 0 | 16777215 |
INT | 4 | -2147483648 | 2147483647 | 0 | 4294967295 |
BIGINT | 8 | -9223372036854775808 | 9223372036854775808 | 0 | 18446744073709551615 |
- 位类型
位类型,关键字是bit,位类型用于存储位字段的值,BIT(M),M表示允许存储位数的值,M的范围为1到64,占用的空间为(M+7)/8字节
注意:如果分配的值长度小于M位,就在数值左边用0填充
# 创建一个表
CREATE TABLE t(a BIT(4));
# 写入数据
INSERT INTO t SELECT b'1000';
# 查询,在新版显示字符串,不能直接查
SELECT * FROM t;
# 位类型的,可以用HEX函数,查询出来是数字8(16进制)
SELECT HEX(a) FROM t;
- 浮点型(非精确类型)
MySQL支持两种浮点类型:单精度的FLOAT类型和双精度的DOUBLE类型 - 高精度类型
DECIMAL和NUMERIC是MySQL进度比较高的类型,语法都是DECIMAL(M,N)、NUMERIC(M,N),M表示精度,也就是整个数值的位数,,两种类型的最大位数M都为65,N表示标度,也就是整个数值小数点后的位数
IT程序员