新闻媒体发稿渠道哪个好?行内人推荐这几家!

吉云

今儿跟大家唠唠我在数据库里折腾 `mediumint` 的那点事儿。前段时间,我不是接个项目嘛需要设计一个数据库,里面有个字段是用来存年龄的,我想着这年龄也不能太大,用 `tinyint` ,怕以后万一哪天政策变,人的寿命延长,`tinyint` 不够用;用 `int` ,又觉得有点浪费,毕竟年龄这玩意儿,一般来说,一百多岁也顶天。这时候,`mediumint` 就进入我的视线。

初步探索

我对 `mediumint` 也不太熟悉,只知道它占 3 个字节,比 `int` 的 4 个字节少一点。于是我就在本地的测试数据库上建张表,搞个 `mediumint` 类型的字段,试着插几条数据,看看效果怎么样。

新闻媒体发稿渠道哪个好?行内人推荐这几家!

发现问题

插数据的时候,一切正常,我当时还美滋滋地想,这 `mediumint` 还挺好用,既省空间,又能满足需求。可是,当我用一些数据库管理工具查看表结构和数据的时候,问题来,这个 `mediumint` 字段,它显示的长度居然是 8 或者 9,我当时就懵,这是咋回事?说好的 3 个字节?

深入研究

为搞清楚这个问题,我就去查资料,翻文档。这一查才知道,原来 `mediumint(M)` 里的这个 M,它并不是用来限制存储范围的,而是用来控制显示宽度的。也就是说,`mediumint(3)` 和 `mediumint(8)`,它们能存的数据范围是一样的,都是 -8388608 到 8388607(无符号的话是 0 到 16777215)。这个 M 主要是配合 `ZEROFILL` 属性使用的,比如说你定义一个 `mediumint(4) ZEROFILL` 的字段,然后你插入一个数字 1,它显示出来就会是 0001,前面给你补零,补到 4 位。

实际验证

知道原理后,我就动手验证一下。我把那个 `mediumint` 字段改成 `mediumint(4) ZEROFILL`,然后插入一些数据,果然,显示的时候,不足 4 位的数字前面都给我补零。这下我才算彻底明白 `mediumint` 的用法。

新闻媒体发稿渠道哪个好?行内人推荐这几家!

总结

  • 我把数据库里的那个字段改回 `mediumint`,没有指定长度,也没有加 `ZEROFILL`,因为我这个项目里,年龄字段不需要补零,显示宽度也没啥用。经过这回实践,我对 `mediumint` 的认识也更深刻,以后再遇到类似的场景,我就知道该怎么选择。

这事儿也让我明白一个道理:实践出真知。有些东西,光看文档,看别人怎么说,还是不够的,得自己动手试试,才能真正理解它的原理和用法。好,今儿就跟大家分享到这儿,希望我的这点经验能对你们有所帮助。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]