mysql中的int(10)int(20)分別代表什么意思
int(10)int(20)分別代表什么意思
儲(chǔ)備知識(shí)
在設(shè)計(jì)數(shù)據(jù)庫表的時(shí)候,經(jīng)常需要設(shè)計(jì)一個(gè)id字段,它的類型一般都是整型int,經(jīng)常會(huì)遇到int(10)、int(20)等等,那么括號(hào)中的內(nèi)容代表什么意思呢?
int的范圍
- 有符號(hào)的整型范圍是-2147483648~2147483647
- 無符號(hào)的整型范圍是0~4294967295
int(10)的意思
int(10)的意思是假設(shè)有一個(gè)變量名為id,它的能顯示的寬度能顯示10位。在使用id時(shí),假如我給id輸入10,那么mysql會(huì)默認(rèn)給你存儲(chǔ)0000000010。當(dāng)你輸入的數(shù)據(jù)不足10位時(shí),會(huì)自動(dòng)幫你補(bǔ)全位數(shù)。假如我設(shè)計(jì)的id字段是int(20),那么我在給id輸入10時(shí),mysql會(huì)自動(dòng)補(bǔ)全18個(gè)0,補(bǔ)到20位為止。
心得
int(M)的作用于int的范圍明顯是無關(guān)的,int(M)只是用來顯示數(shù)據(jù)的寬度,我們能看到的寬度。
當(dāng)字段被設(shè)計(jì)為int類型,那么它的范圍就已經(jīng)被寫死了(看上面的1.1節(jié)的內(nèi)容),與M無關(guān)。
int(10),char(10),varchar(10)的區(qū)別
1.含義
1.首先int(10)的10表示顯示的數(shù)據(jù)的長度,不是存儲(chǔ)數(shù)據(jù)的大??;
2.而chart(10)和varchar(10)的10表示存儲(chǔ)數(shù)據(jù)的大小,即表示存儲(chǔ)多少個(gè)字符。
2.長度
char(10) 10位固定字符串,不足補(bǔ)空格 最多10個(gè)字符
varchar(10) 10位可變字符串,不補(bǔ)空格 最多10個(gè)字符
char(10)和varchar(10) 也是有區(qū)別的,char(10)表示存儲(chǔ)定長的10個(gè)字符,不足10個(gè)就用空格補(bǔ)齊,占用更多的存儲(chǔ)空間。
而varchar(10)表示存儲(chǔ)10個(gè)變長的字符,存儲(chǔ)多少個(gè)就是多少個(gè),空格也按一個(gè)字符存儲(chǔ)這一點(diǎn)是和char(10)的空格不同的,char(10)的空格表示占位不算一個(gè)字符。
3.速度
char的存取數(shù)度還是要比varchar要快得多,因?yàn)槠溟L度固定,方便程序的存儲(chǔ)與查找;但是char也為此付出的是空間的代價(jià),因?yàn)槠溟L度固定,所以難免會(huì)有多余的空格占位符占據(jù)空間,可謂是以空間換取時(shí)間效率,而varchar是以空間效率為首位的。
4.存儲(chǔ)方式
1.char的存儲(chǔ)方式是,對(duì)英文字符(ASCII)占用1個(gè)字節(jié),對(duì)一個(gè)漢字占用兩個(gè)字節(jié);
2.而varchar的存儲(chǔ)方式是,對(duì)每個(gè)英文字符占用2個(gè)字節(jié),漢字也占用2個(gè)字節(jié),兩者的存儲(chǔ)數(shù)據(jù)都非unicode的字符數(shù)據(jù)。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL獲取版本號(hào)的N種方法(全網(wǎng)最全以及避坑大全)
相信大家在工作學(xué)習(xí)中經(jīng)常有需要查詢 MySQL 數(shù)據(jù)庫版本的情況,這里給大家介紹幾種在 MySQL 中查詢數(shù)據(jù)庫版本的方法以及每種方法適用的場景,相信總有一種可以幫到你,需要的朋友可以參考下2024-10-10
mysql自動(dòng)定時(shí)備份數(shù)據(jù)庫的最佳方法(windows服務(wù)器)
網(wǎng)上有很多關(guān)于window下Mysql自動(dòng)備份的方法,可是真的能用的也沒有幾個(gè),有些說的還非常的復(fù)雜,難以操作,這里腳本之家小編為大家分享與整理了幾個(gè)軟件方便大家使用2016-11-11
MySQL實(shí)現(xiàn)批量插入測試數(shù)據(jù)的方式總結(jié)
在開發(fā)過程中經(jīng)常需要一些測試數(shù)據(jù),?這個(gè)時(shí)候如果手敲的話,?十行二十行還好,?多了就很死亡了,?接下來介紹兩種常用的MySQL測試數(shù)據(jù)批量生成方式,希望對(duì)大家有所幫助2023-05-05
MySQL學(xué)習(xí)筆記1:安裝和登錄(多種方法)
今天開始學(xué)習(xí)數(shù)據(jù)庫,于數(shù)據(jù)庫的大理論我就懶得寫了,些考試必備的內(nèi)容我已經(jīng)受夠了我只需要知道一點(diǎn),人們整理數(shù)據(jù)和文件的行為在不斷進(jìn)化,以至現(xiàn)在使用數(shù)據(jù)庫來更好的管理2013-01-01
Mysql8.0密碼問題mysql_native_password和caching_sha2_password詳解
這篇文章主要介紹了Mysql8.0密碼問題mysql_native_password和caching_sha2_password,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
MySQL入門(一) 數(shù)據(jù)表數(shù)據(jù)庫的基本操作
這類文章記錄我看MySQL5.6從零開始學(xué)》這本書的過程,將自己覺得重要的東西記錄一下,并有可能幫助到你們,在寫的博文前幾篇度會(huì)非?;A(chǔ),只要?jiǎng)邮智?,跟著我寫的例子全部?shí)現(xiàn)一遍,基本上就搞定了,前期很難理解的東西基本沒有2018-07-07

