mysql中tinyint相關的知識

2021-09-02 20:46:55 字數 1409 閱讀 4258

tinyint(1)==boolean

寫查詢語句的時候要「字段*1 as name」 轉一下,出來的就是1,0,取的時候用biginteger獲取

tinyint(4)==3位的int

mysql中tinyint、smallint、int和bigint型別的用法區別:

tinyint占用1位元組的儲存空間,即8位(bit)。那麼tinyint的取值範圍怎麼來的呢?我們先看無符號的情況。無符號的最小值即全部8位(bit)都為0,換算成十進位制就是0,所以無符號的tinyint的最小值為0.無符號的最大值即全部8bit都為1,11111111,換算成十進位制就是255.這很好理解。

有符號的tinyint的取值範圍是怎麼來的呢?在計算機中,用最高位表示符號。0表示正,1表示負,剩下的表示數值。那麼有符號的8bit的最小值就是

11111111=-127

表示負值

最大值:

01111111=+127

表示正值

怎麼有符號的最小值是-127,而不是-128呢?這就是本文要說的關鍵地方了,在計算機中,表示負值是用補碼(正碼、反碼、補碼的概念見

為什麼有符號的tinyint的最小值是-128?雖然「-0」也是「0」,但根據正、反、補碼體系,「-0」的補碼和「+0」是不同的,這樣就出現兩個補碼代表乙個數值的情況。為了將補碼與數字一一對應,所以人為規定「0」一律用「+0」代表。同時為了充分利用資源,就將原來本應該表示「-0」的補碼規定為代表-128。

使用整數資料的精確數字資料型別。

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。

MYSQL中TINYINT的取值範圍

在mysql的資料型別中,tinyint的取值範圍是 帶符號的範圍是 128到127。無符號的範圍是0到255 見官方 mysql 5.1參考手冊 tinyint占用1位元組的儲存空間,即8位 bit 那麼tinyint的取值範圍怎麼來的呢?我們先看無符號的情況。無符號的最小值即全部8位 bit 都...

mysql中TINYINT的取值範圍

在mysql的資料型別中,tinyint的取值範圍是 帶符號的範圍是 128到127。無符號的範圍是0到255 見官方 mysql 5.1參考手冊 tinyint占用1位元組的儲存空間,即8位 bit 那麼tinyint的取值範圍怎麼來的呢?我們先看無符號的情況。無符號的最小值即全部8位 bit 都...

mysql中TINYINT的取值範圍

在mysql的資料型別中,tinyint的取值範圍是 帶符號的範圍是 128到127。無符號的範圍是0到255 見官方 mysql 5.1參考手冊 tinyint占用1位元組的儲存空間,即8位 bit 那麼tinyint的取值範圍怎麼來的呢?我們先看無符號的情況。無符號的最小值即全部8位 bit 都...