首页 > 数据库技术 > 详细

MySQL中整型长度的意义

时间:2021-01-28 17:58:33      阅读:18      评论:0      收藏:0      [点我收藏+]

首先说一下,并不是说只能存储指定长度的值,如:TINYINT(1) 不能存储数字10,这是错误的!!!
 
答案:
  1. 如果字段未设置 zerofill,则无意义。
  2. 如果字段设置了 zerofill,则不足指定长度的部分前面使用 0 填充。
 
以 TINYINT 为例:
DROP TABLE IF EXISTS `abc`;
CREATE TABLE IF NOT EXISTS `abc`
(
    `id` TINYINT(2)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4;
INSERT INTO abc(id) VALUE (1);
INSERT INTO abc(id) VALUE (11);
INSERT INTO abc(id) VALUE (111);
SELECT * FROM abc;
结果是:
1
11
111

 

如果字段指定 zerofill,就不一样了。
DROP TABLE IF EXISTS `abc`;
CREATE TABLE IF NOT EXISTS `abc`
(
    `id` TINYINT(2) ZEROFILL
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4;
INSERT INTO abc(id) VALUE (1);
INSERT INTO abc(id) VALUE (11);
INSERT INTO abc(id) VALUE (111);
SELECT * FROM abc;
结果是:
01
11
111
 
嗯,就是这么个意思,个人感觉实际意义并不大,所以整型字段设置长度几乎没什么意义。 

MySQL中整型长度的意义

原文:https://www.cnblogs.com/wuqinglong/p/14338720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!