您好,登錄后才能下訂單哦!
這篇文章主要介紹了MySQL中int(10)和int(11)的區(qū)別是什么的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇MySQL中int(10)和int(11)的區(qū)別是什么文章都會有所收獲,下面我們一起來看看吧。
在創(chuàng)建數(shù)據(jù)庫表的時候,我們經(jīng)常會用到int(x)來定義一個字段的類型,一直誤以為這里的x表示存儲數(shù)字的長度。
其實大錯特錯,這里的 x 指的是 最大顯示寬度(最大有效顯示寬度是255),且顯示寬度與存儲大小或類型包含的值的范圍無關(guān)。
類型 | 字節(jié) | 取值范圍 | 顯示寬度 |
---|---|---|---|
tinyint | 1 | -128 ~ 127 | 4 |
smallint | 2 | -32768 ~ 32767 | 6 |
mediumint | 3 | -8388608 ~ 8388607 | 9 |
int | 4 | -2147483648 ~ 2147483647 | 11 |
bigint | 8 | -9223372036854775808 ~ 9223372036854775807 | 20 |
MySQL 類型關(guān)鍵字后面的括號內(nèi)指定整數(shù)值的顯示寬度(例如,INT(4))。
該可選顯示寬度規(guī)定用于顯示寬度小于指定的列寬度的值時從左側(cè)填滿寬度。顯示寬度并不限制可以在列內(nèi)保存的值的范圍,也不限制超過列的指定寬度的值的顯示。
當(dāng)結(jié)合可選擴(kuò)展屬性 zerofill 使用時, 默認(rèn)補(bǔ)充的空格用零代替。
例如,對于聲明為 INT(5) zerofill 的列,值 4 檢索為 00004。請注意如果在整數(shù)列保存超過顯示寬度的一個值,當(dāng) MySQL 為復(fù)雜聯(lián)接生成臨時表時會遇到問題,因為在這些情況下 MySQL 相信數(shù)據(jù)適合原列寬度。
所有整數(shù)類型可以有一個可選(非標(biāo)準(zhǔn))屬性 UNSIGNED。當(dāng)你想要在列內(nèi)只允許非負(fù)數(shù)和該列需要較大的上限數(shù)值范圍時可以使用無符號值。
那取值范圍和顯示寬度到底有什么關(guān)系呢?利用 int 做了個實驗:
create table int_demo( id int not null auto_increment, int_4 int(4) UNSIGNED zerofill, int_8 int(8) UNSIGNED zerofill, primary key (id) ); insert into int_demo (int_4, int_8) VALUES (2, 1000),(123456, 1234567898); select * from int_demo;
查詢結(jié)果:
mysql> select * from int_demo; +----+--------+------------+ | id | int_4 | int_8 | +----+--------+------------+ | 1 | 0002 | 00001000 | | 3 | 123456 | 1234567898 | +----+--------+------------+ 2 rows in set (0.00 sec)
關(guān)于“MySQL中int(10)和int(11)的區(qū)別是什么”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“MySQL中int(10)和int(11)的區(qū)別是什么”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。