mysqlint后面的4是什么意思(MySQL中intn后面的n到底代表的是什么意思)
mysqlint后面的4是什么意思
MySQL中intn后面的n到底代表的是什么意思你可能已经知道int(1)这个长度1并不代表允许存储的宽度!
但对这个长度很多人也没有真正研究过到底代表什么,今天我就来简单的分析一下!
先看一个简单的建表小案例:
|
create table test( id int (11) unsigned NOT NULL AUTO_INCREMENT, uid int (3) NOT NULL , PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
这里以uid字段为例,我们这里设置的是int(3)
那么问题来了 难道我们设置int(3),就不能存放数据1234了?
那么你完全可以测试一下 输入如下SQL语句
|
insert into `test` (`uid`) VALUES (1234); insert into `test` (`uid`) VALUES (12345678); |
结果图如下:
小伙伴们通过上面的SQL语句可以发现 成功把数据1234插入, 并且我们还可以插入存放更多位的数据! 这是为什么呢? 看下面
原因如下:
这个int(n)我们可以简单的理解为:
这个长度是为了告诉MySQL数据库,我们这个字段的存储的数据的宽度为n位数, 当然如果你不是存储的n位数, 但是(只要在该类型的存储范围之内)MySQL也能正常存储!
那么我们可以从新来建立test2表, 然后这一次我们把uid字段加上: unsigned 和 zerofill 这两个字段约束
==字段约束会在后面详细讲到==
MySQL代码如下:
|
create table test2( id int (11) unsigned NOT NULL AUTO_INCREMENT, uid int (3) unsigned zerofill NOT NULL , PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
现在我的uid字段:长度(n)=3, 字段约束=unsigned 和 zerofill 备: (无符号约束 和 用0来填充位数约束)
设置这个约束的字段后,再往表时插入数据,系统会自动把uid字段不够3位的在左侧用0来填充
小伙伴完全可以测试一下代码: 向uid字段插入一个33的数字
|
insert into `test2` (`uid`) VALUES (33); |
结果图 如下:
大家是不是惊奇的发现不足长度3的时候, 真的用0来 从左边开始填充! 哈哈哈
所以:现在我们应该清楚的知道,int后的长度n 与你存放的数值型的数的大小无关!
==小结:==
在定义表字段数据类型为int类型的时候,后面的长度n所代表的长度是没有任何意义的, 只要在该类型的存储范围之内MySQL也能正常存储! 如果一定要左侧补0 那么这个字段必须要有zerofill约束和unsigned 无符号约束!
到此这篇关于MySQL中int(n)后面的n到底代表的是什么意思 的文章就介绍到这了,更多相关MySQL int(n)内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://juejin.im/post/6896464872415395853
- 怎么运行xampp中的mysql(本地安装了mysql导致xampp的mysql服务启动失败)
- MySql开启远程连接
- mysql innodb存储原理(mysql innodb的重要组件汇总)
- mysql利用数据库日志恢复数据(MySQL通过binlog恢复数据)
- mysql中group_concat
- mysql8.0.23的安装步骤(mysql 8.0.22 下载安装配置方法图文教程)
- mysql 死锁产生的原因和必要条件(Mysql查看死锁与解除死锁的深入讲解)
- mysql存储过程声明(MySQL存储过程的深入讲解in、out、inout)
- thinkphp5.1手动连接mysql数据库(thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例)
- mysql演示事务提交(MySQL找出未提交事务的SQL实例浅析)
- mysql不兼容问题(解决mysql 组合AND和OR带来的问题)
- mysql函数编写(MySQL中sum函数使用的实例教程)
- mysql 索引使用总结(MySQL复合索引的深入探究)
- mysqldecimal类型数据转换(mysql decimal数据类型转换的实现)
- mysql如何修改列的默认值(mysql查询的时候给字段赋默认值操作)
- 用mysql语句写python学生管理系统(Python基于mysql实现学生管理系统)
- vivo首款智能手表来了 也有血氧饱和度监测,一次充电18天续航(vivo首款智能手表来了)
- 你知道 七夕 的真正含义吗(你知道七夕的真正含义吗)
- 七夕的寓意(七夕的寓意)
- 苏志燮赵恩静结婚,韩国四大公共财产变三人,这么快就有替补了(苏志燮赵恩静结婚)
- 《内在美》后,一大波新韩剧来袭,李钟硕朴信惠宋慧乔玄彬回归(一大波新韩剧来袭)
- 给孩子选购保温杯,注意这4个步骤,比颜值更重要(给孩子选购保温杯)
热门推荐
- html5canvas图形怎么打印(HTML5 Canvas 实现K线图的示例代码)
- canvas实现字体粒子爆炸特效(javascript canvas实现雨滴效果)
- MySQL中对varchar类型的排序
- python实现简单加密(Python 隐藏输入密码时屏幕回显的实例)
- python图文生成器(Python生成器的使用方法和示例代码)
- php开发模式有哪些(PHP设计模式之简单工厂和工厂模式实例分析)
- pyqt无边框窗体添加控件(PyQt弹出式对话框的常用方法及标准按钮类型)
- css3实现凸起效果(CSS3轻松实现圆角效果)
- jquery中append和appendto的区别
- dedecms如何使用标签(dedecms模板标签如何做判断示例代码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9