mysql 显示宽度

我们再MySQL中建表时常常要指定一个长度,但是这个长度并不是该数据类型占用的存储空间,而是所谓的显示宽度。下面我们来建个表测试下:

CREATE TABLE `test1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `age` tinyint(2) DEFAULT NULL,
  `name` varchar(3) COLLATE utf8mb4_bin DEFAULT NULL,
  `order` bigint(3) unsigned zerofill DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

我们插入如下数据:

INSERT INTO test1(age, name, order) VALUES ( 127, '3', 1);
INSERT INTO test1(age, name, order) VALUES ( 5, '123', 123456789);

插入后结果展示:

我们发现插入的数据中整数型数据对数据的长度及存储空间并没有根据我们设置的宽度进行限制(真实限制其存储空间及取值范围的是对应数据类型的取值范围),如果在整数型数据类型中添加 unsigned zerofill 则会在不满足数据长度的情况下,前面自动补0,已达到对应的位数。

但是需要注意的是 vachar 这样的数据类型是会真实的控制住数据长度的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值