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

