在mysql5.x版本的數據庫中:
int類型數據的字節大小是固定的4個字節;
但是int(5)和int(11)區別在於,顯示的數據位數一個是5位一個是11位,在開啟zerofill(填充零)情況下,若int(5)存儲的數字長度是小於5的則會在不足位數的前面補充0,但是如果int(5)中存儲的數字長度大於5位的話,則按照實際存儲的顯示(數據大小在int類型的4個字節范圍內即可),也就是說int(M)的M不代表數據的長度;
varchar(20)中的20表示的是varchar數據的數據長度最大是20,超過則數據庫不會存儲;
總結: int(M) M表示的不是數據的最大長度,只是數據寬度,並不影響存儲多少位長度的數據;
varchar(M) M表示的是varchar類型數據在數據庫中存儲的最大長度,超過則不存;