下图为Mysql支持的数值类型
及取值范围
需要注意
这里的M代表的并不是存储在数据库中的具体的长度,如果误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是不对的
tinyint(1) 和 tinyint(4) 中的1和4并不表示存储长度,只有字段指定zerofill才是有用(也就是零填充时), 如tinyint(4),如果实际值是2,如果列指定了zerofill,查询结果就是0002,左边用0来填充`。
那么问题来了,既然加不加数字并没有什么区别,那为什么还多此一举呢?
“正常”情况下确实没有什么区别,只有当字段设置为UNSIGNED ZEROFILL 属性时,INT 增加数字才会有意义。表示如果要存储的数字少于N 个字符,则这些数字将在左侧补零。
id INT(11) NOT NULL AUTO_INCREMENT,
在一些建表语句会出现上面 int(11) 的类型,那么其代表什么意思呢?
对于Integer类型括号中的数字称为字段的显示宽度。这与其他类型字段的含义不同。显示宽度并不影响可以存储在该列中的最大值。INT(5) 和 INT(11)可以存储相同的最大值。哪怕设置成 INT(20) 并不意味着将能够存储20位数字(BIGINT),该列还是只能存储INT的最大值。对于DECIMAL类型,表示数字的总数。对于字符字段,这是可以存储的最大字符数,例如VARCHAR(20)可以存储20个字符。当列设置为UNSIGNED ZEROFILL时,INT(11)才有意义,其表示的意思为如果要存储的数字少于11个字符,则这些数字将在左侧补零。
当我们需要存储小数,并且有精度要求,比如存储金额时,通常会考虑使用DECIMAL字段类型。
语法是DECIMAL(M,D)
这是不对的
3和11并不表示存储长度,只有字段指定zerofill才是有用(也就是零填充时)
,左边用0来填充`。** 樱花校园模拟器4399中文版
樱花校园模拟器4399中文版,十分奇趣好玩的3d校园冒险模拟
我的暑假秘密回忆繁星新春版
我的暑假秘密回忆繁星新春版是一款少女模拟养成类休闲游戏。这款
樱花校园模拟器国际版
樱花校园模拟器国际版,一个超级自由超级好玩的自由恋爱模拟的游
饥荒海难九游版
饥荒海难九游版,带你去真实的海岛上感受一下什么才是真正的孤岛
盖瑞模组体验版最新版
盖瑞模组体验版是玩法非常丰富多元化的沙盒建造游戏,玩家可以在