mysql中tinyint、smallint、int和bigint類型的用法區別:
在MySQL的數據類型中,Tinyint的取值范圍是:帶符號的范圍是-128到127。無符號的范圍是0到255(見官方《MySQL 5.1參考手冊》。Tinyint占用1字節的存儲空間,即8位(bit)。那麼Tinyint的取值范圍怎麼來的呢?我們先看無符號的情況。無符號的最小值即全部8位(bit)都為0,換算成十進制就是0,所以無符號的Tinyint的最小值為0.無符號的最大值即全部8bit都為1,11111111,換算成十進制就是255.這很好理解。
有符號的Tinyint的取值范圍是怎麼來的呢?在計算機中,用最高位表示符號。0表示正,1表示負,剩下的表示數值。那麼有符號的8bit的最小值就是
11111111=-127
表示負值
最大值:
01111111=+127
表示正值
bigint
從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型數據(所有數字)。存儲大小為 8 個字節。
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 不會自動將其它整數數據類型(tinyint、smallint 和 int)提升為 bigint。