mysql int(3)與int(11)的差別詳解。本站提示廣大學習愛好者:(mysql int(3)與int(11)的差別詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql int(3)與int(11)的差別詳解正文
mysql int(3)與int(11)的差別
總結,int(M) zerofill,加上zerofill後M才表示出有點點後果,好比 int(3) zerofill,你拔出到數據庫裡的是10,則現實拔出為010,也就是在後面彌補加了一個0.假如int(3)和int(10)不加zerofill,則它們沒有甚麼差別.M不是用來限制int個數的.int(M)的最年夜值和最小值與undesigned有關,最上面那副圖有解釋.
mysql> create table t (t int(3) zerofill);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t set t = 10;
Query OK, 1 row affected (0.00 sec)
mysql> select * from t;
+——+
| t |
+——+
| 010 |
+——+
1 row in set (0.11 sec)
Zerofill with default width, the same as int(10):
mysql> create table t (t int zerofill);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t set t = 10;
Query OK, 1 row affected (0.02 sec)
mysql> select * from t;
+————+
| t |
+————+
| 0000000010 |
+————+
1 row in set (0.08 sec)
Without zerofill:
mysql> create table t (t int);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into t set t = 10;
Query OK, 1 row affected (0.01 sec)
mysql> select * from t;
+——+
| t |
+——+
| 10 |
+——+
1 row in set (0.00 sec)
以上轉載自 http://hi.百度.com/nancy0754/blog/item/2f3ea13a957a27d7d5622535.html
1 bytes = 8 bit ,一個字節最多可以代表的數據長度是2的8次方 11111111 在盤算機中也就是
-128到127
1.BIT[M]
位字段類型,M表現每一個值的位數,規模從1到64,假如M被疏忽,默許為1
2.TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默許為4
很小的整數。帶符號的規模是-128到127。無符號的規模是0到255。
3. BOOL,BOOLEAN
是TINYINT(1)的同義詞。zero值被視為假。非zero值視為真。
4.SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默許為6
小的整數。帶符號的規模是-32768到32767。無符號的規模是0到65535。
5.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默許為9
中等年夜小的整數。帶符號的規模是-8388608到8388607。無符號的規模是0到16777215。
6. INT[(M)] [UNSIGNED] [ZEROFILL] M默許為11
通俗年夜小的整數。帶符號的規模是-2147483648到2147483647。無符號的規模是0到4294967295。
7.BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默許為20
年夜整數。帶符號的規模是-9223372036854775808到9223372036854775807。無符號的規模是0到18446744073709551615。
留意:這裡的M代表的其實不是存儲在數據庫中的詳細的長度,之前老是會誤認為int(3)只能存儲3個長度的數字,int(11)就會存儲11個長度的數字,這是年夜錯特錯的。
其實當我們在選擇應用int的類型的時刻,豈論是int(3)照樣int(11),它在數據庫外面存儲的都是4個字節的長度,在應用int(3)的時刻假如你輸出的是10,會默許給你存儲位010,也就是說這個3代表的是默許的一個長度,當你缺乏3位時,會幫你不全,當你跨越3位時,就沒有任何的影響。
前天組管問我 int(10)與int(11)有甚麼差別,其時認為就是長度的差別吧,如今看,他們之間除在存儲的時刻略微有點差別外,在我們應用的時刻是沒有任何差別的。int(10)也能夠代表2147483647這個值int(11)也能夠代表。
要檢查出分歧後果記得在創立類型的時刻加 zerofill這個值,表現用0填充,不然看不出後果的。
我們平日在創立數據庫的時刻都不會參加這個選項,所以可以說他們之間是沒有差別的。
That which didn't kill me makes me stronger
感謝年夜家對本文的浏覽,願望能贊助到年夜家,感謝對本站的支撐!