引入:
int(5)和char(5)或者varchar(5)中的數字指的是什么意思?是字節數,還是字符長度?為什么在整型中指定了int(5)卻可以輸入123456?
答案是后者,不管是整型還是字符串類型,后面跟的數字都是字符長度,即字符的個數,而且需要強調說明的是:在整型后面指定的數字指的是最小顯示長度,即要顯示的value值的最小字符個數,若實際的value值的字符個數少於之前字段后面設置的個數,則會用0在value前面進行填充(同時要為字段加上約束條件 zerofill,使用select才能查看到真正的結果);若value值的字符個數大於字段后面設置的個數,則也會正常顯示,因為指定的數值是顯示長度,不是存儲長度,整型類型的默認存儲長度為11個字符,滿足絕大多數環境下的使用,因此int后面不需要指定數值,即使指定了也沒有意義。
用一句話說明int類型的使用,指定的長度只是顯示長度,不是存儲長度,存儲長度默認為11個字符,因此無需指定int類型的長度。
對於字符串類型后面的數字指的是字符的存儲長度,即存儲字符的個數不能超過這個限制,否則無法插入。