mysql int(3)與int(11)的區(qū)別詳解
mysql int(3)與int(11)的區(qū)別
總結(jié),int(M) zerofill,加上zerofill后M才表現(xiàn)出有點(diǎn)點(diǎn)效果,比如 int(3) zerofill,你插入到數(shù)據(jù)庫(kù)里的是10,則實(shí)際插入為010,也就是在前面補(bǔ)充加了一個(gè)0.如果int(3)和int(10)不加zerofill,則它們沒(méi)有什么區(qū)別.M不是用來(lái)限制int個(gè)數(shù)的.int(M)的最大值和最小值與undesigned有關(guān),最下面那副圖有說(shuō)明.
mysql> create table t (t int(3) zerofill);
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t set t = 10;
Query OK, 1 row affected (0.00 sec)
mysql> select * from t;
+——+
| t |
+——+
| 010 |
+——+
1 row in set (0.11 sec)
Zerofill with default width, the same as int(10):
mysql> create table t (t int zerofill);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t set t = 10;
Query OK, 1 row affected (0.02 sec)
mysql> select * from t;
+————+
| t |
+————+
| 0000000010 |
+————+
1 row in set (0.08 sec)
Without zerofill:
mysql> create table t (t int);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into t set t = 10;
Query OK, 1 row affected (0.01 sec)
mysql> select * from t;
+——+
| t |
+——+
| 10 |
+——+
1 row in set (0.00 sec)
以上轉(zhuǎn)載自 http://hi.baidu.com/nancy0754/blog/item/2f3ea13a957a27d7d5622535.html
1 bytes = 8 bit ,一個(gè)字節(jié)最多可以代表的數(shù)據(jù)長(zhǎng)度是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。無(wú)符號(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。無(wú)符號(hào)的范圍是0到65535。
5.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為9
中等大小的整數(shù)。帶符號(hào)的范圍是-8388608到8388607。無(wú)符號(hào)的范圍是0到16777215。
6. INT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為11
普通大小的整數(shù)。帶符號(hào)的范圍是-2147483648到2147483647。無(wú)符號(hào)的范圍是0到4294967295。
7.BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為20
大整數(shù)。帶符號(hào)的范圍是-9223372036854775808到9223372036854775807。無(wú)符號(hào)的范圍是0到18446744073709551615。
注意:這里的M代表的并不是存儲(chǔ)在數(shù)據(jù)庫(kù)中的具體的長(zhǎng)度,以前總是會(huì)誤以為int(3)只能存儲(chǔ)3個(gè)長(zhǎng)度的數(shù)字,int(11)就會(huì)存儲(chǔ)11個(gè)長(zhǎng)度的數(shù)字,這是大錯(cuò)特錯(cuò)的。
其實(shí)當(dāng)我們?cè)谶x擇使用int的類型的時(shí)候,不論是int(3)還是int(11),它在數(shù)據(jù)庫(kù)里面存儲(chǔ)的都是4個(gè)字節(jié)的長(zhǎng)度,在使用int(3)的時(shí)候如果你輸入的是10,會(huì)默認(rèn)給你存儲(chǔ)位010,也就是說(shuō)這個(gè)3代表的是默認(rèn)的一個(gè)長(zhǎng)度,當(dāng)你不足3位時(shí),會(huì)幫你不全,當(dāng)你超過(guò)3位時(shí),就沒(méi)有任何的影響。
前天組管問(wèn)我 int(10)與int(11)有什么區(qū)別,當(dāng)時(shí)覺(jué)得就是長(zhǎng)度的區(qū)別吧,現(xiàn)在看,他們之間除了在存儲(chǔ)的時(shí)候稍微有點(diǎn)區(qū)別外,在我們使用的時(shí)候是沒(méi)有任何區(qū)別的。int(10)也可以代表2147483647這個(gè)值int(11)也可以代表。
要查看出不同效果記得在創(chuàng)建類型的時(shí)候加 zerofill這個(gè)值,表示用0填充,否則看不出效果的。
我們通常在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候都不會(huì)加入這個(gè)選項(xiàng),所以可以說(shuō)他們之間是沒(méi)有區(qū)別的。
That which didn't kill me makes me stronger
謝謝大家對(duì)本文的閱讀,希望能幫助到大家,謝謝對(duì)本站的支持!
相關(guān)文章
MySQL 如何連接對(duì)應(yīng)的客戶端進(jìn)程
這篇文章主要介紹了MySQL 如何連接對(duì)應(yīng)的客戶端進(jìn)程,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下2020-11-11MySQL內(nèi)連接和外連接及七種SQL?JOINS的實(shí)現(xiàn)
這篇文章主要介紹了Mysql內(nèi)連接和外連接的區(qū)別以及七種SQL?Joins的實(shí)現(xiàn),相信看完這篇文章你對(duì)SQL內(nèi)外連接的多表查詢就足夠理解了,需要的朋友可以參考下2023-03-03mysql使用自定義序列實(shí)現(xiàn)row_number功能(步驟詳解)
這篇文章主要介紹了mysql使用自定義序列實(shí)現(xiàn)row_number功能,本文分步驟通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12MYSQL數(shù)據(jù)庫(kù)中cmd命令操作詳解
今天我們就來(lái)看一下數(shù)據(jù)庫(kù)的各種命令,以下命令全部是從CMD命令窗口下的命令行輸入指令,首先如果如果輸入mysql,系統(tǒng)提示“mysql不是內(nèi)部命 令或外部命令2016-04-04解決mysql:ERROR 1045 (28000): Access denied for user ''root''@
今天給大家分享一篇教程幫助大家解決mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)的問(wèn)題,非常不錯(cuò),特此分享到腳本之家平臺(tái)供大家學(xué)習(xí)2021-06-06