栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

tinyint(size),varchar(size):“渟化”说明

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

tinyint(size),varchar(size):“渟化”说明

您的困惑解决方案是-

在Mysql中,int(6)并不意味着它们最多可以存储6位数字。不超过999999。

但是CHAR(6)表示一个字符列,最大长度为6个字符,例如:

房屋

如果我尝试在该列中存储单词“ pecial”,MySQL将把值切为“ pecia”,因为原始单词有7个字符。

无论如何,整数列都具有允许的预设值范围。括号中的数字仅表示显示宽度。

这可能仍然令人困惑,所以让我进一步解释一下。’‘

显示宽度是一个介于1到255之间的数字。如果要将所有整数值都设置为“ ppear”,则可以设置显示宽度,类似地:

TINYINT [(M)] [未签名] [零填充]

M表示整数类型的最大显示宽度。最大显示宽度为255。显示宽度与类型可以包含的值的范围无关。对于浮点和定点类型,M是可以存储的总位数。

如果为数字列指定ZEROFILL,MySQL会自动将UNSIGNED属性添加到该列。

所以你的问题的答案是

create table foo(col2 tinyint(2) unsigned zerofill, col4 tinyint(4) unsigned zerofill, col5notzerofill        tinyint(5)  )engine=innodb;insert into foo values (1,2,3),(11,12,14),(123,123,156),(1234,1234,12756);select * from foo;OUTPUT :-+------+------+-----------------+| col2 | col4 | col5notzerofill |+------+------+-----------------+|   01 | 0002 |    3 ||   11 | 0012 |   14 ||  123 | 0123 |  127 ||  255 | 0255 |  127 |+------+------+-----------------+

*因此请理解,在Mysql中,显示宽度仅适用于zerofill。

*如果您不使用填零功能,则无效。

而且,如果您使用zerofill,则mysql将检查display widht,如果不分配,则mysql将自动为该列分配display-width。 *



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614453.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号