MySQL中整型資料的差別

2022-09-16 15:54:18 字數 1333 閱讀 3342

bigint

從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型資料(所有數字)。儲存大小為 8 個位元組。 

p.s. bigint已經有長度了,在mysql建表中的length,只是用於顯示的位數,一般bigint(20),這個寬度和bigint的取值大小無關,只是用於顯示。因為整型的顯示寬度,對數值大小無影響,只是當設定了zerofill的時候,在顯示的時候補0而已。

int

從 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型資料(所有數字)。儲存大小為 4 個位元組。int 的 sql-92 同義字為 integer。 一般int(11)

smallint

從 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型資料。儲存大小為 2 個位元組。 一般smallint(6)

mediumint

範圍(-8388608~8388607),儲存大小為 3 個位元組。 一般mediumint(8)

tinyint

從 0 到 255 的整型資料。儲存大小為 1 位元組。一般tinyint(4) 

注釋

在支援整數值的地方支援 bigint 資料型別。但是,bigint 用於某些特殊的情況,當整數值超過 int 資料型別支援的範圍時,就可以採用 bigint。在 sql server 中,int 資料型別是主要的整數資料型別。 

在資料型別優先次序表中,bigint 位於 smallmoney 和 int 之間。 

只有當引數表示式是 bigint 資料型別時,函式才返回 bigint。sql server 不會自動將其它整數資料型別(tinyint、smallint 和 int)提公升為 bigint。 

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

總結,int(m) zerofill,加上zerofill後m才表現出有點點效果,比如 int(3) zerofill,你插入到資料庫裡的是10,則實際插入為010,也就是在前面補充加了乙個0.如果int(3)和int(10)不加zerofill,則它們沒有什麼區別.m不是用來限制int個數的.int(m)的最大值和最小值與undesigned有關

SQL 和MYSQL的差別

在sql中字串拼接用 wf dqdatel wf dqtimel 在mysql用 concat wf dqdatel,wf dqtimel 在sql中 select datediff d,日期1,日期2 結果 日期2 日期1 在mysql中 select timestampdiff d,日期1,日期...

整型資料在記憶體中如何儲存

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!以下討論,針對32位的計算機系統。問 int型資料佔幾個位元組?答 4位元組。地球上這個群體的人都知道。再問 這4個位元組,即32個二進位制位,又是何儲存?這就進入計算機的 底層 了。這個事情,學習程式設計的童鞋,可以懂。儲存的方式,和我們拍腦袋想...

(乾貨)詳解資料儲存(中) 整型

上一章節講解了進製,為下面的兩章做了乙個簡單的鋪墊,下面對整型的儲存模式進行詳解。計算機中的有符號整數有三種表示方法 原碼 反碼 補碼 無符號數和正數的原碼 反碼 補碼均相同 三種表示方法均有符號位和數值位兩部分,符號位中0為正,1為負,而數值位三種表示方法各不相同 原碼 直接將整型按照正負數的形式...