首頁  >  文章  >  資料庫  >  Mysql中tinyint(1)和tinyint(4)的差別是什麼

Mysql中tinyint(1)和tinyint(4)的差別是什麼

WBOY
WBOY轉載
2023-05-30 10:55:192066瀏覽

1. varchar(M)和數值類型tinyint(M) 的差異

        字串型別:varchar(M)而言,M是欄位中可以儲存的最大字符串,也就是說字段長度。根據設置,當你插入的數值超過字段設置的長度時,很有可能會收到錯誤提示,如果沒有收到提示,插入的數據也有可能被自動的截斷以適應該字段的預定義長度。所有像varchar(5)表示其儲存的字串長度不能超過5。

        數值欄位類型:其長度修飾符表示最大寬度,與該欄位實體儲存沒有任何關係,也就是說,tinyint(1)和tinyint(4)有符號的情況下儲存範圍都是-128到127(沒有符號就是0到255)。

注意:有符號預設範圍(-128~127),預設長度是4.

           無符號預設範圍(0~255),預設長度為3.

如果使用了zerofill,當實際長度達不到指定的顯示長度時,就會用0在前面補齊。

在mysql的資料型態中,tinyin與其帶不帶符號有關係,帶符號取值範圍為-128~127.不帶符號為0~255。括號中的數字與儲存的值無關,僅在某些情況下與顯示寬度有關。

Mysql中tinyint(1)和tinyint(4)的差別是什麼

2 測試

Mysql中tinyint(1)和tinyint(4)的差別是什麼

#當字串類型的name欄位設定的長度超過5會怎樣?

Mysql中tinyint(1)和tinyint(4)的差別是什麼

當tinyint型別的(有符號)age欄位設定範圍不在(-128~127)會怎麼樣?

Mysql中tinyint(1)和tinyint(4)的差別是什麼

Mysql中tinyint(1)和tinyint(4)的差別是什麼

1 bytes = 8 bit ,一個位元組最多可以代表的資料長度是2的8次方11111111 在電腦中也就是

-128到127

1.BIT[M]

位元欄位類型,M表示每個值的位數,範圍從1到64,如果M被忽略,預設為1

2.TINYINT[(M)] [UNSIGNED] [ZEROFILL]  M預設為4

#很小的整數。帶符號的範圍是-128到127。無符號的範圍是0到255。

3. BOOL,BOOLEAN

是TINYINT(1)的同義字。 zero值被視為假。非zero值視為真。

4.SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M預設為6

小的整數。帶符號的範圍是-32768到32767。無符號的範圍是0到65535。

5.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M預設為9

中等大小的整數。帶符號的範圍是-8388608到8388607。無符號的範圍是0到16777215。

6. INT[(M)] [UNSIGNED] [ZEROFILL]   M預設為11

普通大小的整數。帶符號的範圍是-2147483648到2147483647。無符號的範圍是0到4294967295。

7.BIGINT[(M)] [UNSIGNED] [ZEROFILL] M預設為20

大整數。符號化區間為-9223372036854775808至9223372036854775807。無符號的範圍是0到18446744073709551615。

注意:這裡的M代表的並不是儲存在資料庫中的具體的長度,以前總是會誤以為int(3)只能儲存3個長度的數字,int(11)就會儲存11個長度的數字,這是大錯特錯的。

以上是Mysql中tinyint(1)和tinyint(4)的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除