原文地址:https://blog.csdn.net/allenjay11/article/details/76549503
今天在添加數據的時候,發現當數據類型為 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開始。