mysql中int長度的意義

2021-07-12 05:39:45 字數 979 閱讀 8455

mysql的字段,unsigned int(3), 和unsinged int(6), 能儲存的數值範圍是否相同。如果不同,分別是多大?

不同,int(3)最多顯示3位無符號整體,int(6)最多顯示6位無符號數。

如果你的答案和上面的一致,恭喜你和我犯了一樣的錯誤。

我們建立下面這張表:

create

table

`test` (

`id`

int(10) unsigned not

null auto_increment,

`i1`

int(3) unsigned zerofill default

null,

`i2`

int(6) unsigned zerofill default

null,

primary

key (`id`)

) engine=myisam default charset=utf8

插入一些資料後

發現,無論是int(3), int(6), 都可以顯示6位以上的整數。但是,當數字不足3位或6位時,前面會用0補齊。

查下手冊,解釋是這樣的:

mysql還支援選擇在該型別關鍵字後面的括號內指定整數值的顯示寬度(例如,int(4))。該可選顯示寬度規定用於顯示寬度小於指定的列寬度的值時從左側填滿寬度。顯示寬度並不限制可以在列內儲存的值的範圍,也不限制超過列的指定寬度的值的顯示。

也就是說,int的長度並不影響資料的儲存精度,長度只和顯示有關,為了讓大家看的更清楚,我們在上面例子的建表語句中,使用了zerofill。

無論是unsigned int(3)或 unsiend int(6),儲存的都是4位元組無符號整數, 也就是0~2^32。

mysql中int長度的意義

最近接手新專案,看到資料庫很多int欄位設定了各種各樣的長度,估計是小夥伴搞錯了int長度的意義,誤以為int後面的數字代表的是允許儲存的最大長度,比如,誤以為 int 1 不能儲存 10.其實在mysql裡,int的長度並不會限制儲存的數字範圍.比如,int 和 int 3 的儲存範圍都是 214...

mysql中int長度的意義

疑問 mysql的字段,unsigned int 4 和unsinged int 5 能儲存的數值範圍是否相同。如果不同,分別是多大?答 無論是int 4 int 5 儲存的都是4位元組無符號整數,也就是0 2 32。但是,當數字不足4位或5位時,前面會用0補齊。mysql支援選擇在該型別關鍵字後面...

MySQL中Int型別的長度值問題

mysql在建表的時候int型別後的長度代表什麼?是該列允許儲存值的最大寬度嗎?為什麼我設定成int 1 也一樣能存10,100,1000呢.當時我雖然知道int 1 這個長度1並不代表允許儲存的寬度,但卻沒有乙個合理的解釋.或者說對這個長度也沒有真正的研究過到底代表什麼,平時都用int 11 也不...