最近使用mysql數據庫的時候遇到了多種數字的類型,主要有int,bigint,smallint和tinyint。其中比較迷惑的是int和smallint的差別。今天就在網上仔細找了找,找到如下內容,留檔做個總結:
創(chuàng)新互聯公司是一家專業(yè)提供桂林企業(yè)網站建設,專注與網站建設、網站設計、H5網站設計、小程序制作等業(yè)務。10年已為桂林眾多企業(yè)、政府機構等服務。創(chuàng)新互聯專業(yè)網站建設公司優(yōu)惠進行中。
使用整數數據的精確數字數據類型。
bigint
從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型數據(所有數字)。存儲大小為 8 個字節(jié)。
P.S. bigint已經有長度了,在mysql建表中的length,只是用于顯示的位數
int
從 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型數據(所有數字)。存儲大小為 4 個字節(jié)。int 的 SQL-92 同義字為 integer。
smallint
從 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型數據。存儲大小為 2 個字節(jié)。
tinyint
從 0 到 255 的整型數據。存儲大小為 1 字節(jié)。
注釋
在支持整數值的地方支持 bigint 數據類型。但是,bigint 用于某些特殊的情況,當整數值超過 int 數據類型支持的范圍時,就可以采用 bigint。在 SQL Server 中,int 數據類型是主要的整數數據類型。
在數據類型優(yōu)先次序表中,bigint 位于 smallmoney 和 int 之間。
只有當參數表達式是 bigint 數據類型時,函數才返回 bigint。SQL Server 不會自動將其它整數數據類型(tinyint、smallint 和 int)提升為 bigint。
int(M) 在 integer 數據類型中,M 表示最大顯示寬度。在 int(M) 中,M 的值跟 int(M) 所占多少存儲空間并無任何關系。和數字位數也無關系 int(3)、int(4)、int(8) 在磁盤上都是占用 4 btyes 的存儲空間。
我們在設計表的時候,如果碰到需要設置int(整型)的時候,通常會按照慣例(大家都這樣寫)設置成int(11)。那么這里為什么是11呢?代表的又是什么呢?
以前我一直以為這里是在限制int顯示的寬度,后來仔細研究和通過上網查詢發(fā)現,事實并不是那樣的。
確切的來說,這里的“寬度”只是一個“預期值”,它所代表的僅僅是你在設計數據表結構時,想讓該列日后顯示的值寬度為多少,但是具體存入值的寬度多少不會受任何影響。
當然,它的作用不僅如此,在存入數據的時候,還是有一定區(qū)別的,這一點可以通過設置字段的zerofill可以看出。比如這里我們創(chuàng)建一個數據表,結構如下:
create
table
test
(
num
int(5)
zerofill
);
上面代碼創(chuàng)建一個名為test的表,結構很簡單,表中只有一個名為num的字段,類型為int,寬度為5,為了看出寬度方便,我們又添加一個zerofill屬性(該屬性會讓存入數值在不足寬度情況下,左側補0)
然后我們開始插入數據:
mysql
insert
into
test
values(1),(11),(123),(12345),(123456),(1234567);
Query
OK,
6
rows
affected
(0.00
sec)
Records:
6
Duplicates:
Warnings:
打印結果:
mysql
select
*
from
test;
+---------+
|
num
|
+---------+
|
00001
|
|
00011
|
|
00123
|
|
12345
|
|
123456
|
|
1234567
|
+---------+
6
rows
in
set
(0.00
sec)
由以上結果,不難看出,如果字符少于設置(期望值)寬度,在設置了zerofill屬性的情況下,左側會統(tǒng)統(tǒng)補0;但是如果超出則不受任何影響。也就是說這里的int(m)中m只是一個預期值,和真實數據寬度并沒多大關系。
mysql的字段類型大體來講分為int、text、varchar、char、blog等幾種,而各自的類型中又劃分了不同的字符數的類型,mediumint是MySQL數據庫中的一種數據類型,比INT小,比SMALLINT大。
字節(jié)(byte),1個字節(jié)等于8個位(bit),一個bit存儲0或者1,理解這個對于理解后面的占用字節(jié)導致的存儲數值的有很重要的作用。整型,常見細分為tinyint、smallint、mediumint、int、bigint這幾種。
類? ?型:mediumint
長? ?度:8
占用字節(jié):3字節(jié)
有 符 號:-8388608~8388607
無 符 號:0~16777215
不指定長度時的長度為:9(實際長度還是8)
擴展資料
1、tinyint:存儲所占一個字節(jié),一個字節(jié)等于8bit,根據1bit可以存儲0到1兩種可能性,因此tinyint類型可以存儲2的8次方,也就是256種可能性,從0開始計數,無符號也就是可以 存儲0~255,如果是有符號,那就是-128~127。
2、smallint:存儲所占兩個字節(jié),同上也就是可以存儲2的16次方,也就是可以存儲65536種可能性,無符號從0開始則是可以存儲0~65535,有符號則是-32768~32767。
3、mediumint:存儲所占三個字節(jié),也就是2的24次方,可以存儲16777216種可能性,無符號可以存儲0~16777215,有符號可以存儲-8388608~8388607。
4、int:存儲所占四個字節(jié),也就是2的32次方,可以存儲4294967296種可能性,無符號可以存儲0~4294967295,有符號則是-2147483648~2147483647。
5、bigint:存儲所占8個字節(jié),也就是2的64次方,可以存儲2的64次種可能性,無符號可以存儲0~((232×2)-1),有符號則是-(232×2)/2 ~ (232×2)/2-1。
參考資料來源:百度百科—mediumint
新聞名稱:mysql的整型怎么表示 mysql 整形類型
標題鏈接:http://chinadenli.net/article40/dogsdho.html
成都網站建設公司_創(chuàng)新互聯,為您提供微信公眾號、建站公司、網站內鏈、響應式網站、搜索引擎優(yōu)化、做網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯