2、长度指的是显示宽度,比如,指定3位int,那么id为3和id为300的值,在显示的时候怎么对齐呢?按照手册的说法,是默认用“空格”在左边填充。比如下述表格
CREATE TABLE `inttest` (
`id` int(3) unsigned NOT NULL AUTO_INCREMENT,
`value` varchar(2) NOT NULL,
PRIMARY KEY (`id`)
) EN
现在分别插入id长度为2,3,4,5位的数据,执行查询以后得到显示如下:
MariaDB [mytest]>select * from inttest
+-------+-------+
| id| value |
+-------+-------+
|13 | a |
| 111 | b |
| 1000 | c |
| 10000 | d |
+-------+-------+
4 rows in set (0.00 sec)
如果我们改成ZEROFILL,再次查询的结果如下:
MariaDB [mytest]>select * from inttest
+-------+-------+
| id| value |
+-------+-------+
| 013 | a |
| 111 | b |
| 1000 | c |
| 10000 | d |
+-------+-------+
4 rows in set (0.00 sec)
我们会发现,不足3位长度的值会被自动填充,而超过3位长度的值就不会被填充了。
指的是字节。解释:
字符可以分为中文字符,英文字符、数字。
中文字符(中文输入下的汉字和特殊字符都包含)占两个字节。
英文字符(大写字母和小写字母)占一个字节。
数字也是占一个字节。
Mysql 建表过程中:
MySQL中int类型占用4个字节[byte(B)],1B有8个位[bit(b)],一个位(b)就代表一个0或者1,那么MySQL中int占用4B,对应位就是 4*8b = 32b 了,也就是说 int 表示的数字 个数 是: 2的32次方。
因为字节分有符号和无符号两种,于是 int 有符号 的 范围就是 -2的31次方 到 2的31次方减去1 [?1 为什么不是32次方?] [?2 为什么要减去1?],即 -2147483648 ~ 2147483647; int 无符号(unsigned) 的 范围就是 0 到 2的32次方减去1。
知道了 int 类型的范围后,我们再来看看长度是什么意思。 在MySQL手册中,字段类型的长度用 “M” 表示,表示最大显示宽度。 int 的 最大有效显示宽度是 255。 注意: 此处表示 显示宽度 和 存储大小或类型及范围 无关
参考:
1、 https://blog.csdn.net/weixin_33695082/article/details/92011222
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)