<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          mysql中int(3)與int(6)的數(shù)值范圍相同嗎?

          共 1631字,需瀏覽 4分鐘

           ·

          2021-10-13 17:39

          提問:

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

          回答:

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

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

          真實情況:

          int類型整數(shù)占4個字節(jié),有符號的范圍為:-2^31 ~ 2^31-1,無符號整數(shù)范圍為:0 ~ 2^32-1,既然都是無符號整數(shù),那么存儲范圍是一樣的,int(6)只是在數(shù)字不夠6位時用0補全,如果超過6位,則不需要補全。

          我們建立下面這張表:

          drop?table?if?exists?test;
          CREATE?TABLE?`test`?(
          ??`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`)
          )?ENGINE=InnoDB?DEFAULT?CHARSET=utf8mb4;

          插入一些數(shù)據(jù)后,用cmd命令行查看:

          mysql> select * from test;
          +----+------------+-------------+------------+------------+------------+
          | id | a | b | c | d | e |
          +----+------------+-------------+------------+------------+------------+
          | 1 | 1 | 00000000001 | 1 | 00001 | 1 |
          | 2 | 1234567890 | 01234567890 | 1234567890 | 1234567890 | 1234567890 |
          +----+------------+-------------+------------+------------+------------+

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

          注意:如果你是用類似navicat這種工具看,不會補充0,可能做了處理,需要用mysql cmd命令行才能看到這種效果。

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

          MySQL還支持選擇在該類型關(guān)鍵字后面的括號內(nèi)指定整數(shù)值的顯示寬度(例如,INT(4))。該可選顯示寬度規(guī)定用于顯示寬度小于指定的列寬度的值時從左側(cè)填滿寬度。顯示寬度并不限制可以在列內(nèi)保存的值的范圍,也不限制超過列的指定寬度的值的顯示。

          也就是說,int的長度并不影響數(shù)據(jù)的存儲精度,長度只和顯示有關(guān),為了讓大家看的更清楚,我們在上面例子的建表語句中,使用了zerofill。

          結(jié)論:

          無論是unsigned int(3)unsiend int(6),存儲的都是4字節(jié)無符號整數(shù), 也就是0~2^32


          猜你喜歡
          mysql自增id用完了怎么辦?
          Hadoop 數(shù)據(jù)遷移用法詳解
          Hbase修復(fù)工具Hbck
          數(shù)倉建模分層理論
          一文搞懂Hive的數(shù)據(jù)存儲與壓縮
          大數(shù)據(jù)組件重點學(xué)習(xí)這幾個

          瀏覽 63
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  少妇激情五月天 | 国产二区三区 | 91视频免费在线观看 | 欧美成人综合在线观看 | 51成人做爰www免费看网站 |