mysql 数据类型 int_MySQL数据类型 int(M) 表示什么意思?
MySQL 數據類型中的 integer types 有點奇怪。你可能會見到諸如:int(3)、int(4)、int(8) 之類的 int 數據類型。剛接觸 MySQL 的時候,我還以為 int(3) 占用的存儲空間比 int(4) 要小, int(4) 占用的存儲空間比 int(8) 小。
后來,參看 MySQL 手冊,發現自己理解錯了。 int(M): M indicates the maximum display width for integer types.
在 integer 數據類型中,M 表示最大顯示寬度。 原來,在 int(M) 中,M 的值跟 int(M) 所占多少存儲空間并無任何關系。 int(3)、int(4)、int(8) 在磁盤上都是占用 4 btyes 的存儲空間。說白了,除了顯示給用戶的方式有點不同外,int(M) 跟 int 數據類型是相同的。
另外,int(M) 只有跟 zerofill 結合起來,才能使我們清楚的看到不同之處。
mysql> drop table if exists t; mysql> create table t(id int zerofill);
mysql> insert into t(id) values(10);
mysql> select * from t;
+------------+
| id |
+------------+
| 0000000010 |
+------------+
mysql> alter table t change column id id int(3) zerofill;
mysql> select * from t;
+------+
| id |
+------+
| 010 |
+------+
mysql> mysql> alter table t change column id id int(4) zerofill;
mysql> select * from t;
+------+
| id |
+------+
| 0010 |
+------+
mysql> mysql> insert into t(id) values(1000000);
mysql> select * from t;
+---------+
| id |
+---------+
| 0010 |
| 1000000 |
+---------+
從上面的測試可以看出,“(M)”指定了 int 型數值顯示的寬度,如果字段數據類型是 int(4),則:當顯示數值 10 時,在左邊要補上 “00”;當顯示數值 100 是,在左邊要補上“0”;當顯示數值 1000000 時,已經超過了指定寬度“(4)”,因此按原樣輸出。 在使用 MySQL 數據類型中的整數類型(tinyint, smallint, mediumint, int/integer, bigint)時,非特殊需求下,在數據類型后加個“(M)”,我想不出有何意義。
總結
以上是生活随笔為你收集整理的mysql 数据类型 int_MySQL数据类型 int(M) 表示什么意思?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql严格模式 报错_代码一上传服务
- 下一篇: MySQL引擎innodb和mysum_