asp怎么循环增加字段和字段对应的值_在MySQL添加字段时,int(m) 这个m的作用是什么?...

在MySQL添加字段时, int(m) 这个m的作用是什么?

对于这个问题,是考察你平时在工作中,有没有注意过MySQL的一些细节。这个也是平时容易忽略的,而在面试中会遇到的问题。

我们在数据库中实践下,看这个M到底有什么作用:

首先创建一个表:

552b652e07e0a78f82ac11e6f396be49.png

其中total_quantity 字段定义的长度是4,插入数字50000,看能不能保存:

748d965852b5c07c9423698280d114c0.png

从这个运行结果可以看出,定义的是4位,但5位数也可以保存,这说明:int数据类型设置的长度与实际存储大小没有关系。

思考一下,这个m到底有什么作用?(在验证的时候需增加一个属性zerofil,便于观察)

在custom_order 中增加一个int类型的字段(number):

1db4afd1a765571359a8eef35d19de15.png

在给该字段设置一个为5的值,看看结果:

2a6a29bcb881d14b4eba636ae5f0b2c0.png

从结果可以看出,number显示的是一个以0补充的5位的值,这说明,int(m) 中m的作用是用来显示长度;(注:未设置zerofill属性,看不出区别)

查询Mysql手册,得到这样的一个结论:

MySQL支持选择在该类型关键字后面的括号内指定的显示宽度(例如,INT(5))。该显示宽度规定--显示宽度小于指定的列宽度的值时从左侧补充宽度。显示宽度并不限制该列值的存储范围,也不限制超过列的指定宽度的值的显示。 换句话说 int的长度并不影响数据的存储精度,长度只和显示有关

zerofill的作用

1、插入数据时,当该字段的值的长度小于定义的长度时,会在该值的前面以0来补充;

2、当使用zerofill 时,默认会自动加unsigned(无符号)属性,使用unsigned属性后,数值范围是原值的2倍;

到此还有一个问题,int数据类型设置长度与存储的大小没有关系,那int类型字段的存储大小是多少呢?

关于这点,请看下表(来自Mysql手册):

f1eac4e3894e8d91a6fc3d5fd565179d.png

对于开始的面试题,大家知道怎么回答了吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值