程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql int(3)與int(11)的差別詳解

mysql int(3)與int(11)的差別詳解

編輯:MySQL綜合教程

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

感謝年夜家對本文的浏覽,願望能贊助到年夜家,感謝對本站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved