int 和vachar后面的数字代表的含义
在创建数据表的时候,我们经常会给每一个字段设置一个长度,例如:int(5)、varchar(10) 等等,但是他们代表的意思是什么呢?是该列允许存储值的最大宽度吗?
场景1:为什么我设置成 int(1), 也一样能存 101001000 呢?
场景2:为什么我设置varchar(10),却只能存储最多10个字符呢?
那是因为在mysql中,int后面的数字代表的是显示宽度,而varchar后面的数字代表的是字符长度。
也就是说int后面的数字和存储值的大小无关,具体int能存储的范围是多少,是根据int类型占用字节大小有关。
varchar后面的数字却是和要存储的数据长度有关系的,varchar(5),则只能最多存储5个字符;
例:以下是每个整数类型的存储和范围 (来自 mysql 手册)
我们可以看出int类型存储大小是4个字节。根据1字节 = 8位/比特,也就是2^32 。 所以int无符号的取值范围(-2147483648 ~ 2147483647),最大能表示长度为10的数。所以在数据库中你设置int(1),却能存储101001000,那是因为你还在该类型的范围内。这就引来疑问了,那设置长度的意义是什么呢?
答:当你设置zerofill也就是0填充的时候,这个长度的意义就出现了,例如:设置字段为int(4) zerofill(0填充), 插入值 1,则会显示 0001,也就是当你的值不满足显示宽度的时候,会在该值左侧用0补充长度。总而言之如果不设置0填充,其实设置int后面的数字没有太大意义。(但是手册上还有这么一句话 "当 mysql 为某些复杂的联结 (join) 生成临时表时,你可能会遇到问题,因为在这种情况下,mysql 信任地认为所有的值均适合原始的列宽度")。
在创建数据表的时候,我们经常会给每一个字段设置一个长度,例如:int(5)、varchar(10) 等等,但是他们代表的意思是什么呢?是该列允许存储值的最大宽度吗?
场景1:为什么我设置成 int(1), 也一样能存 101001000 呢?
场景2:为什么我设置varchar(10),却只能存储最多10个字符呢?
那是因为在mysql中,int后面的数字代表的是显示宽度,而varchar后面的数字代表的是字符长度。
也就是说int后面的数字和存储值的大小无关,具体int能存储的范围是多少,是根据int类型占用字节大小有关。
varchar后面的数字却是和要存储的数据长度有关系的,varchar(5),则只能最多存储5个字符;
例:以下是每个整数类型的存储和范围 (来自 mysql 手册)
我们可以看出int类型存储大小是4个字节。根据1字节 = 8位/比特,也就是2^32 。 所以int无符号的取值范围(-2147483648 ~ 2147483647),最大能表示长度为10的数。所以在数据库中你设置int(1),却能存储101001000,那是因为你还在该类型的范围内。这就引来疑问了,那设置长度的意义是什么呢?
答:当你设置zerofill也就是0填充的时候,这个长度的意义就出现了,例如:设置字段为int(4) zerofill(0填充), 插入值 1,则会显示 0001,也就是当你的值不满足显示宽度的时候,会在该值左侧用0补充长度。总而言之如果不设置0填充,其实设置int后面的数字没有太大意义。(但是手册上还有这么一句话 "当 mysql 为某些复杂的联结 (join) 生成临时表时,你可能会遇到问题,因为在这种情况下,mysql 信任地认为所有的值均适合原始的列宽度")。
————————————————
版权声明:本文为CSDN博主「蝶开三月」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/panjiapengfly/article/details/107579906
int 和vachar后面的数字代表的含义的更多相关文章
- man page里面函数后面的括号中的数字代表的含义。
Linux下最通用的领域及其名称及说明如下:领域 名称 说明 1 用户命令, 可由任何人启动的. 2 系统调用, 即由内核提供的函数. 3 例程, 即库函数. 4 设备, 即/dev目录下的特殊文件. ...
- http请求返回的数字代表的含义
一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务器超时 下面提供 HTTP 状态码的完整列表.点击链接可了解详情.您也可以访问 HTTP 状态码上的 ...
- thinkjs——一个字段一种数字代表两种状态
问题来源: 现有一张company数据表,其中有一个字段state(-2:待审核:-1:禁用:0:正常:1:会员过期:),一般而言,在前期设计数据表的时候,会将每种状态下都用一种特定的数字代表,但是这 ...
- Python不使用int()函数把字符串转换为数字
Python不使用int()函数把字符串转换为数字 2018年05月21日 14:18:45 边缘ob边缘ob 阅读数:1035 https://blog.csdn.net/qq_33192555/a ...
- ECSTORE 关于FILTER条件所代表的含义
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //以下为ecstore filter条件所代表的含义 $FilterArray= array( ' ...
- 列出下面几项的URL并解释每部分代表的含义
列出下面几项的URL并解释每部分代表的含义 a.你的学校 b.你的学校的计算机科学系 c.你的老师的主页
- FX3 DMA生产者消费者ID代表的含义
在开发FX3的时候,觉得赛普拉斯的库注释太少,很多时候无法理解代码含义.由于使用DMA,需要理解DMA生产者消费者代表的含义,经过多方查找,决定记录下来. 在cyu3dma.h中对SocketID进行 ...
- 百度蜘蛛IP地址到底代表什么含义?
百度蜘蛛IP地址到底代表什么含义,是不是不同的ip地址所代表的含义不一样呢?对权重和抓取是否有影响?哪些是无效的蜘蛛,哪些是站长工具的蜘蛛,那些又是百度自己真正的蜘蛛?百度蜘蛛,是百度搜索引擎的一个自 ...
- linux中文件颜色,蓝色,白色等各自代表的含义
linux中文件颜色,蓝色,白色等各自代表的含义 绿色文件---------- 可执行文件,可执行的程序 红色文件-----------压缩文件或者包文件 蓝色文件----------目录 白色文件- ...
- mysql 1,2,3 关联查询出数字代表的具体意思
建表 TEST1 CREATE TABLE `TEST1` (`ID` int(11) NOT NULL,`IID` varchar(200) DEFAULT NULL,PRIMARY KEY (`I ...
随机推荐
- 下载安装i5ting_toc
全部都是以管理员身份运行powershell 1.打开powershell之后输入命令npm i i5ting_toc -g 这样就全局安装了 2.set-ExecutionPolicy Remote ...
- 福昕PDF如何以多个窗口打开文件
福昕PDF默认设置下双击打开多个文件,所有文件只会在同一个程序内显示,怎样让每个文件都使用单独一个程序,以多个窗口的形式打开呢? 福昕软件,文件 > 偏好设置 > 文档 > 勾选&q ...
- dom-utils
function isNil(obj:any): boolean { return typeof obj === "undefined" || obj === null;}func ...
- VsCode C++ 语法检测失效不标红色波浪线 解决办法
如果enable Squiggles 无效,按照下图里配置设置解决问题. 如图:
- 基于ipset的dns代理
###基于源IP的dns白名单 sleep 60s/etc/init.d/firewall restart ###创建ipset集合 命名为src_dns_whitelist#清空原有命名为src_d ...
- System.Data.Linq 无法引用的问题
参考文章 https://www.bbsmax.com/A/1O5EM0G457/ 已经在工程中引用了system.data.linq,但是在代码中,输入 using System.Data.Lin ...
- mybatis-属性名和查询字段名不相同的解决方案
1.使用别名 resultType可以将查询结果直接映射为实体bean对象的条件是,sql查询的字段名和实体bean的属性名一致,通过反射机制完成对象的创建. select tid id,tname ...
- dockerfile实践学习
一.dockerfile简介 镜像是分层存储的,每一层在前一层的基础上进行修改. 容器也是分层存储,已经向为基础层,在其他基础上加一层作为容器运行的存储层. 创建镜像的另种两种方法 手动修改容器内容, ...
- pytorch 独热编码报错的解决办法:one_hot is only applicable to index tensor
首先,报错原因,我认为是数据类型错误, 在文档中表示,第一个tensor参数的数据类型为LongTensor,也就是torch.int64类型的,如果你有报这个错:"one_hot is o ...
- ListView,ScrollView,RecyclerView上下滑动监听
在项目中有这样需求要对ListView或ScrollView或RecyclerView滚动进行监听,来做一些处理,下面来看对应实现 一:Listview上下滑动监听 通过实现AbsListView.O ...