详解 MySQL int 类型的长度值问题


当前第2页 返回上一页

ff77df3b03cd7ded4643436b1ae8d79.png

mysql 手册中这个长度 / 值用 "M" 来表示的。细心的朋友应该有注意到过 mysql 手册上有这么一句话: M 指示最大显示宽度。最大有效显示宽度是 255。显示宽度与存储大小或类型包含的值的范围无关 ;

这句话看上去不太容易理解,因为这里有个关键词容易让我们混淆,"最大显示宽度" 我们第一反应是该字段的值最大能允许存放的值的宽度。以为我们建了 int (1), 就不能存放数据 10 了,其实不是这个意思.

这个 M=5 我们可以简单的理解成为,我们建立这个长度是为了告诉 MYSQL 数据库我们这个字段的存储的数据的宽度为 5 位数, 当然如果你不是 5 位数 (只要在该类型的存储范围之内) MYSQL 也能正常存储, 这也就能解释以上标红的话.

我们把这个字段的 "属性" 修改为 UNSIGNED ZEROFILL 看一下效果.

aa43a0145e8b9db9a86c7dce0987acf.png

我们看到现在我的 number 字段,长度 (M)=5, 属性 = UNSIGNED ZEROFILL (无符号,用 0 来填充位数), 设置这个属性后我往表时插入数据,系统会自动把 number 字段 M 不够 5 位的在左侧用 0 来填充;效果如下

f9ac6677991dc5d0b455136de76527d.png

手册上还有这么一句话 "当 mysql 为某些复杂的联结 (join) 生成临时表时,你可能会遇到问题,因为在这种情况下,mysql 信任地认为所有的值均适合原始的列宽度". 这也让我不禁感叹这个宽度到底如何设置比较合适?

但有一点看完该文档你应该清楚的知道,长度 M 与你存放的数值型的数的大小无关.

以上就是详解 MySQL int 类型的长度值问题的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

windows系统服务器mysql报错innodb: attempted to open解决方法

navicat premium操作mysql数据库(执行sql语句)

mysql为什么主键自增

mysql数据库中修改语句的语法是什么

mysql8.0.20下载安装及遇到的问题(图文详解)

mysql中存储过程、函数的一些问题

在linux系统安装mysql步骤截图详解

mysql数据库中影响性能因素的讲解(附数据库架构案例)

删除mysql数据库提示操作无法完成

mysql数据类型优化原则

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...