日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

关于mysql中int(1)中int后面的数字

發布時間:2025/3/20 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于mysql中int(1)中int后面的数字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
mysql在建表的時候int類型后的長度代表什么? 是該列允許存儲值的最大寬度嗎? 為什么我設置成int(1), 也一樣能存10,100,1000呢.
? 當時我雖然知道int(1),這個長度1并不代表允許存儲的寬度,但卻沒有一個合理的解釋. 或者說對這個長度也沒有真正的研究過到底代表什么, 平時都用int(11), 也不知道為什么要11位. 所以我在網上查閱了一些資料, 也仔細的看了mysql手冊關于int data type的說法. 以下是每個整數類型的存儲和范圍(來自mysql手冊)
?
類型 字節 最小值 最大值
(帶符號的/無符號的) (帶符號的/無符號的)
TINYINT 1 -128 127
0 255
SMALLINT 2 -32768 32767
0 65535
MEDIUMINT 3 -8388608 8388607
0 16777215
INT 4 -2147483648 2147483647
0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615

?

表格一共有四列分別表式:字段類型, 占用字節數, 允許存儲的最小值, 允許存儲的最大值. 我們拿int類型為例: int類型, 占用字節數為4byte, 學過計算機原理的同學應該知道, 字節(byte)并非是計算機存儲的最小單位, 還有比字節(byte)更小的單位, 也就是位(bit),一個位就代表一個0或1; 8個位組成一個字節; 一般字節用大寫B來表示byte, 位用小寫b來表示bit. 計算機存儲單位的換算: 1B=8b 1KB=1024B 1MB=1024KB
? 那么根據int類型允許存儲的字節數是4個字節, 我們就能換算出int?UNSIGNED(無符號)類型的能存儲的最小值為0, 最大值為4294967295(即4B=32b, 最大值即為32個1組成); 接下來我們再說說我們建表時的字段長度到底是怎么一回事. CREATE TABLE `test` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`number` INT( 5 ) NOT NULL
) ENGINE = MYISAM ; 以test表的number字段為例, 大家看到我建的是int(5)
mysql手冊中這個長度/值用"M"來表示的. 細心的朋友應該有注意到過mysql手冊上有這么一句話:??M指示最大顯示寬度。最大有效顯示寬度是255。顯示寬度與存儲大小或類型包含的值的范圍無關; 這句話看上去不太容易理解, 因為這里有個關鍵詞容易讓我們混淆, "最大顯示寬度"我們第一反應是該字段的值最大能允許存放的值的寬度. 以為我們建了int(1),就不能存放數據10了, 其實不是這個意思. 這個M=5我們可以簡單的理解成為, 我們建立這個長度是為了告訴MYSQL數據庫我們這個字段的存儲的數據的寬度為5位數,? 當然如果你不是5位數(只要在該類型的存儲范圍之內)MYSQL也能正常存儲,? 這也就能解釋以上標紅的話. 我們把這個字段的"屬性"修改為UNSIGNED ZEROFILL看一下效果.

?

我們看到現在我的number字段, 長度(M)=5, 屬性=UNSIGNED ZEROFILL(無符號,用0來填充位數),? 設置這個屬性后我往表時插入數據,系統會自動把number字段M不夠5位的在左側用0來填充; 效果如下

?

手冊上還有這么一句話"當?mysql?為某些復雜的聯結(join)生成臨時表時,你可能會遇到問題,因為在這種情況下,mysql 信任地認為所有的值均適合原始的列寬度". 這也讓我不禁感嘆這個寬度到底如何設置比較合適? 但有一點看完該文檔你應該清楚的知道, 長度M與你存放的數值型的數的大小無關.

轉載于:https://www.cnblogs.com/rxbook/p/6049858.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的关于mysql中int(1)中int后面的数字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。