mysql中int、bigint、smallint 和 tinyint的區別與長度的含義

最近使用MySQL數據庫的時候遇到了多種數字的類型,主要有int,bigint,smallint和tinyint。其中比較迷惑的是int和smallint的差別。今天就在網上仔細找了找,找到如下內容,留檔做個總結:

使用整數數據的精確數字數據類型。

bigint

從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型數據(所有數字)。存儲大小爲 8 個字節。

P.S. bigint已經有長度了,在mysql建表中的length,只是用於顯示的位數


int

從 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型數據(所有數字)。存儲大小爲 4 個字節。int 的 SQL-92 同義字爲 integer

smallint

從 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型數據。存儲大小爲 2 個字節。

tinyint

從 0 到 255 的整型數據。存儲大小爲 1 字節。

註釋

在支持整數值的地方支持 bigint 數據類型。但是,bigint 用於某些特殊的情況,當整數值超過 int 數據類型支持的範圍時,就可以採用 bigint。在 SQL Server 中,int 數據類型是主要的整數數據類型。

在數據類型優先次序表中,bigint 位於 smallmoney 和 int 之間。

只有當參數表達式是 bigint 數據類型時,函數才返回 bigint。SQL Server 不會自動將其它整數數據類型(tinyintsmallint 和 int)提升爲 bigint

int(M) 在 integer 數據類型中,M 表示最大顯示寬度。在 int(M) 中,M 的值跟 int(M) 所佔多少存儲空間並無任何關係。和數字位數也無關係 int(3)、int(4)、int(8) 在磁盤上都是佔用 4 btyes 的存儲空間。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章