mysql中int、bigint、smallint和tinyint的區(qū)別_MySQL
來源:懂視網(wǎng)
責(zé)編:小采
時間:2020-11-09 19:31:08
mysql中int、bigint、smallint和tinyint的區(qū)別_MySQL
mysql中int、bigint、smallint和tinyint的區(qū)別_MySQL:使用整數(shù)數(shù)據(jù)的精確數(shù)字?jǐn)?shù)據(jù)類型。bigint從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型數(shù)據(jù)(所有數(shù)字)。存儲大小為 8 個字節(jié)。int從 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,64
導(dǎo)讀mysql中int、bigint、smallint和tinyint的區(qū)別_MySQL:使用整數(shù)數(shù)據(jù)的精確數(shù)字?jǐn)?shù)據(jù)類型。bigint從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型數(shù)據(jù)(所有數(shù)字)。存儲大小為 8 個字節(jié)。int從 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,64

使用整數(shù)數(shù)據(jù)的精確數(shù)字?jǐn)?shù)據(jù)類型。
bigint
從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型數(shù)據(jù)(所有數(shù)字)。存儲大小為 8 個字節(jié)。
int
從 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型數(shù)據(jù)(所有數(shù)字)。存儲大小為 4 個字節(jié)。int 的 SQL-92 同義字為 integer。
smallint
從 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型數(shù)據(jù)。存儲大小為 2 個字節(jié)。
tinyint
從 0 到 255 的整型數(shù)據(jù)。存儲大小為 1 字節(jié)。
注釋
在支持整數(shù)值的地方支持 bigint 數(shù)據(jù)類型。但是,bigint 用于某些特殊的情況,當(dāng)整數(shù)值超過 int 數(shù)據(jù)類型支持的范圍時,就可以采用 bigint。在 SQL Server 中,int 數(shù)據(jù)類型是主要的整數(shù)數(shù)據(jù)類型。
在數(shù)據(jù)類型優(yōu)先次序表中,bigint 位于 smallmoney 和 int 之間。
只有當(dāng)參數(shù)表達(dá)式是 bigint 數(shù)據(jù)類型時,函數(shù)才返回 bigint。SQL Server 不會自動將其它整數(shù)數(shù)據(jù)類型(tinyint、smallint 和 int)提升為 bigint。
在MySQL的數(shù)據(jù)類型中,Tinyint的取值范圍是:帶符號的范圍是-128到127。無符號的范圍是0到255(見官方《MySQL 5.1參考手冊》http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#numeric-types)。
Tinyint占用1字節(jié)的存儲空間,即8位(bit)。那么Tinyint的取值范圍怎么來的呢?我們先看無符號的情況。無符號的最小值即全部8位(bit)都為0,換算成十進(jìn)制就是0,所以無符號的Tinyint的最小值為0.無符號的最大值即全部8bit都為1,11111111,換算成十進(jìn)制就是255.這很好理解。
有符號的Tinyint的取值范圍是怎么來的呢?在計算機中,用最高位表示符號。0表示正,1表示負(fù),剩下的表示數(shù)值。那么有符號的8bit的最小值就是
1 1 1 1 1 1 1 1=-127
表示負(fù)值
最大值:
0 1 1 1 1 1 1 1=+127
表示正值
怎么有符號的最小值是-127,而不是-128呢?這就是本文要說的關(guān)鍵地方了,在計算機中,表示負(fù)值是用補碼(正碼、反碼、補碼的概念見http://indian.blog.163.com/blog/static/1088158200610942745817/)
為什么有符號的TINYINT的最小值是-128?雖然“-0”也是“0”,但根據(jù)正、反、補碼體系,“-0”的補碼和“+0”是不同的,這樣就出現(xiàn)兩個補碼代表一個數(shù)值的情況。為了將補碼與數(shù)字一一對應(yīng),所以人為規(guī)定“0”一律用“+0”代表。同時為了充分利用資源,就將原來本應(yīng)該表示“-0”的補碼規(guī)定為代表-128
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
mysql中int、bigint、smallint和tinyint的區(qū)別_MySQL
mysql中int、bigint、smallint和tinyint的區(qū)別_MySQL:使用整數(shù)數(shù)據(jù)的精確數(shù)字?jǐn)?shù)據(jù)類型。bigint從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型數(shù)據(jù)(所有數(shù)字)。存儲大小為 8 個字節(jié)。int從 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,64