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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql int类型的长度值

發(fā)布時(shí)間:2023/12/18 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql int类型的长度值 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

整數(shù)類型的存儲(chǔ)和范圍(來自mysql手冊)
?

類型 字節(jié) 最小值 最大值
(帶符號(hào)的/無符號(hào)的) (帶符號(hào)的/無符號(hào)的)
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

注:帶符號(hào)的/無符號(hào)的 可設(shè)置例如 ? Alter Table tablename ?ADD fieldname ?TINYINT(1) UNSIGNED

表格一共有四列分別表式:字段類型, 占用字節(jié)數(shù), 允許存儲(chǔ)的最小值, 允許存儲(chǔ)的最大值. 計(jì)算機(jī)存儲(chǔ)單位的換算: 1B=8bit?(位. 存放一位二進(jìn)制數(shù),即 0 或 1,最小的存儲(chǔ)單位) 1KB=1024B(byte 字節(jié)) 1MB=1024KB(千字節(jié)) 拿tinyint舉例 tinyint類型, 占用字節(jié)數(shù)為1byte=8bit ?即8個(gè)1組成的 二進(jìn)制(11111111)=256 ,如果設(shè)置了無符號(hào)最大只能存255 ?有符號(hào)為-128~127? 同理拿int類型為例: int類型, 占用字節(jié)數(shù)為4byte, 學(xué)過計(jì)算機(jī)原理的同學(xué)應(yīng)該知道, 字節(jié)(byte)并非是計(jì)算機(jī)存儲(chǔ)的最小單位, 還有比字節(jié)(byte)更小的單位, 也就是位(bit),一個(gè)位就代表一個(gè)0或1; 8個(gè)位組成一個(gè)字節(jié); 一般字節(jié)用大寫B(tài)來表示byte, 位用小寫b來表示bit.
那么根據(jù)int類型允許存儲(chǔ)的字節(jié)數(shù)是4個(gè)字節(jié), 我們就能換算出int?UNSIGNED(無符號(hào))類型的能存儲(chǔ)的最小值為0, 最大值為4294967295(即4B=32b, 最大值即為32個(gè)1組成); 接下來我們再說說我們建表時(shí)的字段長度到底是怎么一回事. CREATE TABLE `test` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`number` INT( 5 ) NOT NULL
) ENGINE = MYISAM ;
? mysql手冊中這個(gè)長度/值用"M"來表示的. ?M指示最大顯示寬度。最大有效顯示寬度是255。顯示寬度與存儲(chǔ)大小或類型包含的值的范圍無關(guān); 這句話看上去不太容易理解, 因?yàn)檫@里有個(gè)關(guān)鍵詞容易讓我們混淆, "最大顯示寬度"我們第一反應(yīng)是該字段的值最大能允許存放的值的寬度. 以為我們建了int(1),就不能存放數(shù)據(jù)10了, 其實(shí)不是這個(gè)意思. 這個(gè)M=5我們可以簡單的理解成為, 我們建立這個(gè)長度是為了告訴MYSQL數(shù)據(jù)庫我們這個(gè)字段的存儲(chǔ)的數(shù)據(jù)的寬度為5位數(shù),? 當(dāng)然如果你不是5位數(shù)(只要在該類型的存儲(chǔ)范圍之內(nèi))MYSQL也能正常存儲(chǔ),? 這也就能解釋以上標(biāo)紅的話. 我們把這個(gè)字段的"屬性"修改為UNSIGNED ZEROFILL看一下效果. [ZEROFILL]
ALTER TABLE `test` CHANGE COLUMN `number` `number` INT(5) ZEROFILL UNSIGNED NOT NULL DEFAULT '0';
我們看到現(xiàn)在我的number字段, 長度(M)=5, 屬性=UNSIGNED ZEROFILL(無符號(hào),用0來填充位數(shù)),? 設(shè)置這個(gè)屬性后系統(tǒng)會(huì)自動(dòng)把number字段M不夠5位的在左側(cè)用0來填充; 效果如下

附加 bit、byte、位、字節(jié)、漢字、字符 bit、byte、位、字節(jié)、漢字的關(guān)系1 bit = 1 二進(jìn)制數(shù)據(jù)1 byte = 8 bit1 字母 = 1 byte = 8 bit1 漢字 = 2 byte = 16 bit1. bit:位一個(gè)二進(jìn)制數(shù)據(jù)0或1,是1bit;2. byte:字節(jié)存儲(chǔ)空間的基本計(jì)量單位,如:MySQL中定義 VARCHAR(45) 即是指 45個(gè)字節(jié);1 byte = 8 bit3. 一個(gè)英文字符占一個(gè)字節(jié);1 字母 = 1 byte = 8 bit4. 一個(gè)漢字占2個(gè)字節(jié);1 漢字 = 2 byte = 16 bit

  


?

轉(zhuǎn)載于:https://www.cnblogs.com/wangxusummer/p/5741609.html

總結(jié)

以上是生活随笔為你收集整理的mysql int类型的长度值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。