- 首先来说一下int(10)的含义,拆分int(10),如int(M),int代表整数数据,那么括号中的M是代表多少位,我们常用的可能有int(4),int(10)等等,一开始我认为int(4)比int(10)所占的存储空间要小,实际并不是这样的,原来,在int(M)中,M的值跟int(M)的存储没有半毛钱的关系,并且,int(4)、int(10)哪怕是int(100)等等,它们所在磁盘中都是占用4 btyes的存储空间,在此介绍一下数据类型,如下表格所示:
整数型
MySQL数据类型 | 含义(有符号 |
---|---|
tinyint(m) | 1个字节 范围(-128~127) |
mediumint(m) | 3个字节 范围(-8388608~8388607) |
int(m) | 4个字节 范围(-2147483648~2147483647) |
bigint(m) | 8个字节 范围(±9.22*10的18次方) |
取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。如下图所示:
浮点型(float和double)
MySQL数据类型 | 含义 |
---|---|
float(m,d) | 单精度浮点型 8位精度(4字节) m总个数,d小数位 |
double(m,d) | 双精度浮点型 16位精度(8字节) m总个数,d小数位 |
设一个字段定义为float(5,3),如果插入一个数459.698756,实际数据库里存的是459.699,但总个数还以实际为准,即6位。
定点数
浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。
decimal(m,d) 参数m<65 是总个数,d<30且 d<m 是小数位。
字符串
MySQL数据类型 | 含义 |
---|---|
char(n) | 固定长度,最多255个字符 |
varchar(n) | 固定长度,最多65535个字符 |
tinytext | 可变长度,最多65535个字符 |
mediumtext | 可变长度,最多2的24次方-1个字符 |
longtext | 可变长度,可变长度,最多2的32次方-1个字符 |
2.MySQL数据库中定义某个字段为int类型,位数为10,那么到底能装多大数据呢?经过测试,发现有符号的int类型,最大值为999999999,最小值是-999999999;如果是无符号的int类型,最大值在4000000000到5000000000之间,最小值为0。下面利用实例说明int(10)可以输入多少位数,操作如下:
第一步: 在navicat数据库客户端创建数据库表ceshi,三个字段id、name,如下图所示:
第二步: 打开ceshi数据库表,准备录入数据,如下图所示:
第三步: 第一个字段id输入1,其他的字段输入数字,点击保存,如下图所示:
第四步: id换成-999999999,点击保存,这时发现也可以保存,如下图所示:
第五步: id输入999999999,点击保存,可以保存;但是超过这个值,会提示错误,如下图所示:
第六步: 将id换成无符号int类型,修改保存的最大值,发现不能保存9999999999,可以保存4000000000到5000000000之间的值,如下图所示:
注意:此处有一个问题,有人说设置无符号之后可以保存4000000000到5000000000之间的值,但是在测试的过程当中发先4999999999这个数字并不可以保存,甚至4299999999这个数值都无法保存,望广大码友答疑解惑,如下图所示: