mysql int 最大显示宽度_mysql int 整数类型 解释显示宽度 和 存储宽度
存儲寬度 是實際存儲記錄寬度
存儲寬度默認是寫死的,就算修改寬度也改變不了,改變的是顯示寬度
============有符號和無符號int=============
創建一個 無符號的 int 整數類型
mysql> create table t3(id int(1) unsigned);
Query OK,0 rows affected (0.01sec)
mysql> desct3;+-------+-----------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------------+------+-----+---------+-------+
| id | int(1) unsigned | YES | | NULL | |
+-------+-----------------+------+-----+---------+-------+
1 row in set (0.00 sec)
mysql> insert into t3 values(25555555);
Query OK,1 row affected (0.00sec)
mysql> select * fromt3;+----------+
| id |
+----------+
| 25555555 |
+----------+
1 row in set (0.00sec)
整數類型 最大? 4個字節存儲
無符號int類型 最大 這個數 4294967295 無符號范圍0-4294967295
mysql> insert into t3 values(25555555555555555555555555555555555);
Query OK,1 row affected, 2 warnings (0.00sec)
mysql> select * fromt3;+------------+
| id |
+------------+
| 25555555 |
| 4294967295 |
+------------+
2 rows in set (0.00 sec)
自己定義寬度的 int(1) 沒有限制現在存儲 ,因為mysql 不管是 tinyint 、int、bigint 整數類型 都不用設置寬度的
整數類型的那個設置寬度 不是存儲寬度,而是顯示寬度
對于tinyint、int、bigint的存儲寬度 mysql已經固定死了,例如用tinyint mysql只用1個字節
int用4個字節、bigint8個字節,能改變的只有顯示寬度
顯示寬度設置5,int 最大存儲寬度是4個字節
mysql> create table t4(id int(5) unsigned);
Query OK,0 rows affected (0.01sec)
mysql>show tables;+---------------+
| Tables_in_db4 |
+---------------+
| t1 |
| t2 |
| t3 |
| t4 |
+---------------+
4 rows in set (0.00sec)mysql> desc t4;
+-------+-----------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------------+------+-----+---------+-------+
| id | int(5) unsigned | YES | | NULL | |
+-------+-----------------+------+-----+---------+-------+
1 row in set (0.00 sec)mysql> insert into t4 values(1),(255);
Query OK,2 rows affected (0.01sec)
Records:2 Duplicates: 0 Warnings: 0mysql> select * fromt4;+------+
| id |
+------+
| 1 |
| 255 |
+------+
2 rows in set (0.00 sec)
顯示寬度 是查詢表的時候,顯示的結果的寬度
======用zerofill測試整數類型的顯示寬度=============
再創建一張表t5 加上zerofill用0填充,加上這個可以看到顯示寬度意思
mysql> create table t5(id int(5) zerofill);
Query OK,0 rows affected (0.01sec)
mysql> insert into t5 values(1),(2);
Query OK,2 rows affected (0.00sec)
Records:2 Duplicates: 0 Warnings: 0mysql>mysql> select * fromt5;+-------+
| id |
+-------+
| 00001 |
| 00002 |
+-------+
2 rows in set (0.00 sec)
如果插入的記錄的寬度 超過設置的顯示寬度,他會正常顯示
mysql> insert into t5 values(111111111111111111111111111111111111111111);
Query OK,1 row affected, 2 warnings (0.00sec)
mysql> select * fromt5;+------------+
| id |
+------------+
| 00001 |
| 00002 |
| 4294967295 |
+------------+
3 rows in set (0.00 sec)
這個是顯示寬度
不設置寬度時候
mysql> create table t6(id intunsigned);
Query OK,0 rows affected (0.01sec)
mysql> desct6;+-------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+-------+
| id | int(10) unsigned | YES | | NULL | |
+-------+------------------+------+-----+---------+-------+
1 row in set (0.00 sec)
無符號int整數類型默認寬度是10字節,有符號int整數類型默認寬度是11字節
默認不加任何東西就是 有符號int整數類型
mysql> create table t7(id int);
Query OK,0 rows affected (0.02sec)
mysql> desct7;+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)
注意:為該類型指定寬度時,僅僅只是指定查詢結果的顯示寬度,與存儲范圍無關,存儲范圍如下
其實我們完全沒必要為整數類型指定寬度,使用默認的就可以了
默認的顯示寬度,都是在最大值的基礎上加1
對于整數類型 沒有必要設置寬度 設置的寬度是顯示寬度,對于其他類型來說設置的寬度是 存儲寬度
int的存儲寬度是4個Bytes,即32個bit,即2**32
無符號最大值為:4294967296-1
有符號最大值:2147483648-1
有符號和無符號的最大數字需要的顯示寬度均為10,而針對有符號的最小值則需要11位才能顯示完全,所以int類型默認的顯示寬度為11是非常合理的
最后:整形類型,其實沒有必要指定顯示寬度,使用默認的就ok
總結
以上是生活随笔為你收集整理的mysql int 最大显示宽度_mysql int 整数类型 解释显示宽度 和 存储宽度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Intel超频一定要选i9-13900K
- 下一篇: 糖醋排骨里竟然藏着"量子点"!它咋这么厉