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ù)的大?。?/p>
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提示Changed limits: max_open_files: 2048 max_connections:
這篇文章主要介紹了mysql提示Changed limits: max_open_files: 2048 max_connections: 1910 table_cache: 64的解決,需要的朋友可以參考下2014-05-05MySQL 使用 ORDER BY 排序和 DELETE 刪
這篇文章主要介紹了MySQL 使用 ORDER BY 排序和 DELETE 刪除記錄的操作過程,即數(shù)據(jù)庫查詢與數(shù)據(jù)操作,本文通過示例代碼給大家介紹的非常詳細,需要的朋友參考下吧2023-11-11mysql 實現(xiàn)互換表中兩列數(shù)據(jù)方法簡單實例
這篇文章主要介紹了mysql 實現(xiàn)互換表中兩列數(shù)據(jù)方法簡單實例的相關(guān)資料,需要的朋友可以參考下2016-10-10mysqldump數(shù)據(jù)庫備份參數(shù)詳解
這篇文章主要介紹了mysqldump數(shù)據(jù)庫備份參數(shù)詳解,需要的朋友可以參考下2014-05-05