Mysql中tinyint(1)和tinyint(4)的區(qū)別詳析
1. varchar(M)和數(shù)值類型tinyint(M) 的區(qū)別
字符串類型:varchar(M)而言,M是字段中可以存儲(chǔ)的最大字符串,也就是說字段長度。根據(jù)設(shè)置,當(dāng)你插入的數(shù)值超過字段設(shè)置的長度時(shí),很有可能會(huì)收到錯(cuò)誤提示,如果沒有收到提示,插入的數(shù)據(jù)也有可能被自動(dòng)的截?cái)嘁赃m應(yīng)該字段的預(yù)定義長度。所有像varchar(5)表示其存儲(chǔ)的字符串長度不能超過5。
數(shù)值列類型:其長度修飾符表示最大寬度,與該字段物理存儲(chǔ)沒有任何關(guān)系,也就是說,tinyint(1)和tinyint(4)有符號(hào)的情況下存儲(chǔ)范圍都是-128到127(沒有符號(hào)就是0到255)。
注意:有符號(hào)默認(rèn)范圍(-128~127),默認(rèn)長度是4.
無符號(hào)默認(rèn)范圍(0~255),默認(rèn)長度是3.
如果使用了zerofill,當(dāng)實(shí)際長度達(dá)不到指定的顯示長度時(shí),就會(huì)用0在前面補(bǔ)齊。
在mysql的數(shù)據(jù)類型中,tinyin與其帶不帶符號(hào)有關(guān)系,帶符號(hào)取值范圍為-128~127.不帶符號(hào)為0~255。tinyint后面括號(hào)的數(shù)字,和存儲(chǔ)的值沒有任何關(guān)系,只是在某些情況下和顯示的寬度有關(guān)系。
2 測試
當(dāng)將字符串類型的name字段設(shè)置的長度超過5會(huì)怎樣?
當(dāng)將tinyint類型的(有符號(hào))age字段設(shè)置范圍不在(-128~127)會(huì)怎樣?
1 bytes = 8 bit ,一個(gè)字節(jié)最多可以代表的數(shù)據(jù)長度是2的8次方 11111111 在計(jì)算機(jī)中也就是
-128到127
1.BIT[M]
位字段類型,M表示每個(gè)值的位數(shù),范圍從1到64,如果M被忽略,默認(rèn)為1
2.TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為4
很小的整數(shù)。帶符號(hào)的范圍是-128到127。無符號(hào)的范圍是0到255。
3. BOOL,BOOLEAN
是TINYINT(1)的同義詞。zero值被視為假。非zero值視為真。
4.SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為6
小的整數(shù)。帶符號(hào)的范圍是-32768到32767。無符號(hào)的范圍是0到65535。
5.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為9
中等大小的整數(shù)。帶符號(hào)的范圍是-8388608到8388607。無符號(hào)的范圍是0到16777215。
6. INT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為11
普通大小的整數(shù)。帶符號(hào)的范圍是-2147483648到2147483647。無符號(hào)的范圍是0到4294967295。
7.BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為20
大整數(shù)。帶符號(hào)的范圍是-9223372036854775808到9223372036854775807。無符號(hào)的范圍是0到18446744073709551615。
注意:這里的M代表的并不是存儲(chǔ)在數(shù)據(jù)庫中的具體的長度,以前總是會(huì)誤以為int(3)只能存儲(chǔ)3個(gè)長度的數(shù)字,int(11)就會(huì)存儲(chǔ)11個(gè)長度的數(shù)字,這是大錯(cuò)特錯(cuò)的。
總結(jié)
到此這篇關(guān)于Mysql中tinyint(1)和tinyint(4)區(qū)別的文章就介紹到這了,更多相關(guān)Mysql tinyint(1)和tinyint(4)區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql如何將查詢結(jié)果內(nèi)容進(jìn)行轉(zhuǎn)換
文章介紹了如何在MySQL中使用CASE表達(dá)式對(duì)查詢結(jié)果進(jìn)行多分支判斷,并分享了個(gè)人經(jīng)驗(yàn),希望對(duì)大家有所幫助2025-02-02mysql 5.7.21解壓版本安裝 Navicat數(shù)據(jù)庫操作工具安裝
這篇文章主要為大家詳細(xì)介紹了mysql 5.7.21解壓版本安裝,Navicat數(shù)據(jù)庫操作工具安裝,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02sql語句 update字段null不能用is null問題
這篇文章主要介紹了sql語句 update字段null不能用is null問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09一文帶你了解MySQL之InnoDB統(tǒng)計(jì)數(shù)據(jù)是如何收集的
通過show index可以看到關(guān)于索引的統(tǒng)計(jì)數(shù)據(jù),那么這些統(tǒng)計(jì)數(shù)據(jù)是怎么來的呢,它們是以什么方式收集的呢,本章將聚焦于InnoDB存儲(chǔ)引擎的統(tǒng)計(jì)數(shù)據(jù)收集策略,需要的朋友可以參考下2023-05-05MySQL中between...and的使用對(duì)索引的影響說明
這篇文章主要介紹了MySQL中between...and的使用對(duì)索引的影響說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07MySQL5.6 Replication主從復(fù)制(讀寫分離) 配置完整版
這篇文章主要介紹了MySQL5.6 Replication主從復(fù)制(讀寫分離) 配置完整版,需要的朋友可以參考下2016-04-04