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

pythontab發表於2017-10-31

最近使用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 位元組。

注意:

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


相關文章