本文介绍: 1.int后面的数字,不影响int本身支持大小int(1)、int(2)…int(10)没什么区别。2.int后面的数字,配合zerofill一起使用才有效。3.int(3) + zerofill实现了不足3位补0的现象,对于001,底层存储还是1,只是在展示的会补0。

推荐链接
    总结——》【Java】
    总结——》【Mysql】
    总结——》【Redis】
    总结——》【Kafka】
    总结——》【Spring】
    总结——》【SpringBoot】
    总结——》【MyBatis、MyBatis-Plus】
    总结——》【Linux】
    总结——》【MongoDB】
    总结——》【Elasticsearch】

不同类型最大存储范围是不一样的。

类型 单位字节 符号取值范围 符号取值范围
tinyint 1 -128 ~ 127 0 ~ 255
smallint 2 -32768 ~ 32767 0 ~ 65535
mediumint 3 -8388608 ~ 8388607 0 ~ 16777215
int 4 -2147483648 ~ 2147483647 0 ~ 4294967295
integer 4 -2147483648 ~ 2147483647 0 ~ 4294967295
bigint 8 -9223372036854775808 ~ 9223372036854775807 0 ~ 18446744073709551615

1、UNSIGNED:无符号

表示不允许负值

Q:有符号 VS 无符号
A:
相同:

  1. 相同的存储空间
  2. 相同的性能

不同:

  1. 不同的存储范围

2、ZEROFILL:填充

如果数据宽度小于指定长度,则在数字前面填充零'0'
使用zerofill 时,默认自动加unsigned(无符号)属性

3、长度

数值类型设置长度影响该数字段取值范围,只是规定了用来显示字符个数
长度只有在设置 ZEROFILL 即 “填充零” 后才有所意义。
比如 int(3) 存储 1 ,填充零时会填充为 001。

CREATE TABLE `test` (
  `num` int(3) DEFAULT NULL,
  `num_zerofill` int(3) unsigned zerofill DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试';


INSERT INTO  `test` (`num`, `num_zerofill`) VALUES (1, 1);
INSERT INTO  `test` (`num`, `num_zerofill`) VALUES (2, 2);
INSERT INTO  `test` (`num`, `num_zerofill`) VALUES (3, 3);
INSERT INTO  `test` (`num`, `num_zerofill`) VALUES (4, 4);
INSERT INTO  `test` (`num`, `num_zerofill`) VALUES (5, 5);

zerofill.png

4、总结

1.int后面的数字,不影响int本身支持大小,int(1)、int(2)…int(10)没什么区别
2.int后面的数字,配合zerofill一起使用才有效。
3.int(3) + zerofill实现了不足3位补0的现象,对于001,底层存储还是1,只是在展示的会补0。

原文地址:https://blog.csdn.net/weixin_43453386/article/details/134645869

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_26800.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注