小編給大家分享一下MYSQL中的int(11)指的是什么,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
在工作中經(jīng)常要與mysql打交道,但是對mysql的各個字段類型一直都是一知半解,MYSQL中的int(11)代表什么呢?大家可能也不太清楚,因此寫本文總結(jié)記錄一番。
對于int類型的一些基礎(chǔ)知識其實上圖已經(jīng)說的很明白了,在這里想討論下常用的int(11)代表什么意思,很長時間以來我都以為這代表著限制int的長度為11位,直到有天看到篇文章才明白,11代表的并不是長度,而是字符的顯示寬度,在字段類型為int時,無論你顯示寬度設(shè)置為多少,int類型能存儲的大值和最小值永遠都是固定的,這里貼一些原文片段
The number in the parenthesis does not determines the max and min values that can be stored in the integer field. The max and min values that can be stored are always fixed.The display width of the column does not affects the maximum value that can be stored in that column. A column with INT(5) or INT(11) can store the same maximum values. Also, if you have a column INT(20) that does not means that you will be able to store 20 digit values (BIGINT values). The column still will store only till the max values of INT.
那么照文中所說,所以無論怎么設(shè)置int類型的顯示寬度,int所能存儲的大值和最小值是固定的,那么這個顯示寬度到底有什么用呢?
當int字段類型設(shè)置為無符號且填充零(UNSIGNED ZEROFILL)時,當數(shù)值位數(shù)未達到設(shè)置的顯示寬度時,會在數(shù)值前面補充零直到滿足設(shè)定的顯示寬度,為什么會有無符號的限制呢,是因為ZEROFILL屬性會隱式地將數(shù)值轉(zhuǎn)為無符號型,因此不能存儲負的數(shù)值。
具體用以下代碼解釋。
首先創(chuàng)建一張表:
CREATE TABLE int_demo ( id INT(11) NOT NULL AUTO_INCREMENT, a INT(11) NOT NULL, b INT(11) UNSIGNED ZEROFILL NOT NULL, c INT(5) DEFAULT NULL, d INT(5) UNSIGNED ZEROFILL NOT NULL, e INT(15) DEFAULT NULL, PRIMARY KEY (`id`) )
插入兩條數(shù)據(jù)
INSERT INTO int_demo (a, b, c, d, e) VALUES (1, 1, 1, 1, 1); INSERT INTO int_demo (a, b, c, d, e) VALUES (1234567890, 1234567890, 1234567890, 1234567890, 1234567890);
select * from int_demo;
id | a | b | c | d | e |
---|---|---|---|---|---|
1 | 1 | 00000000001 | 1 | 00001 | 1 |
2 | 1234567890 | 01234567890 | 1234567890 | 1234567890 | 1234567890 |
注釋:如果用navicate軟件查詢出來并不會顯示左邊的0,但把數(shù)據(jù)導出時可看到真實的數(shù)據(jù),猜測是軟件對數(shù)據(jù)格式進行了處理?
從上個例子我們可以得出以下幾個結(jié)論:
如果一個字段設(shè)置了無符號和填充零屬性,那么無論這個字段存儲什么數(shù)值,數(shù)值的長度都會與設(shè)置的顯示寬度一致,如上述例子中的字段b,插入數(shù)值1顯示為00000000001,左邊補了10個零直至長度達到11位;
設(shè)置字段的顯示寬度并不限制字段存儲值的范圍,比如字段d設(shè)置為int(5),但是仍然可以存儲1234567890這個10位數(shù)字;
設(shè)置的字符寬度只對數(shù)值長度不滿足寬度時有效,如d字段int(5),插入1時,長度不足5,因此在左邊補充4個零直到5位,但是插入1234567890時超過了5位,這時的顯示寬度就起不了作用了。
看完了這篇文章,相信你對“MYSQL中的int(11)指的是什么”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文題目:MYSQL中的int(11)指的是什么-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://sd-ha.com/article44/jjpee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、移動網(wǎng)站建設(shè)、網(wǎng)站制作、軟件開發(fā)、網(wǎng)站收錄、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)