天天看點

MySQL中int(11)最大長度是多少?

MySQL中int(11)最大長度是多少?

今天在添加資料的時候,發現當資料類型為 int(11) 時,我當時讓使用者添加資料時,最大輸入的長度為11位,結果,添加資料添加不上,導緻出現問題,我又改為最大長度為10位,結果驗證9個1的時候是正常的,再次驗證9個9的時候又失敗了。

經過查詢資料,最終找到了關于mysql中的資料類型 int(11)的介紹

在SQL語句中int代表你要建立字段的類型,int代表整型,11代表字段的長度。

這個11代表顯示寬度,整數列的顯示寬度與mysql需要用多少個字元來顯示該列數值,與該整數需要的存儲空間的大小都沒有關系,比如,不管設定了顯示寬度是多少個字元,bigint都要占用8個位元組。

int是整型,(11)是指顯示字元的長度,但要加參數的,最大為255,比如它是記錄行數的id,插入10筆資料,它就顯示00000000001 ~~~00000000010,當字元的位數超過11,它也隻顯示11位,如果你沒有加那個讓它未滿11位就前面加0的參數,它不會在前面加0

聲明整型資料列時,我們可以為它指定個顯示寬度M(1~255),如INT(5),指定顯示寬度為5個字元,如果沒有給它指定顯示寬度,MySQL會為它指定一個預設值。顯示寬度隻用于顯示,并不能限制取值範圍和占用空間,如:INT(3)會占用4個位元組的存儲空間,并且允許的最大值也不會是999,而是 INT整型所允許的最大值。

MySQL有五種整型資料列類型,即TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT。它們之間的差別是取值範圍不同,存儲空間也各不相同。

在整型資料列後加上UNSIGNED屬性可以禁止負數,取值從0開始。

注意:這裡的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)也可以代表

轉自:https://blog.csdn.net/allenjay11/article/details/76549503

繼續閱讀