溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中char和varchar有什么不一樣

發(fā)布時間:2020-07-17 10:33:38 來源:億速云 閱讀:215 作者:清晨 欄目:編程語言

這篇文章主要介紹MySQL中char和varchar有什么不一樣,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

MySQL中char和varchar的區(qū)別是什么

區(qū)別一、定長和變長的區(qū)別

1、char 表示定長,長度固定;

2、varchar表示變長,即長度可變。

當所插入的字符串超出它們的長度時,視情況來處理,如果是嚴格模式,則會拒絕插入并提示錯誤信息,如果是寬松模式,則會截取然后插入。如果插入的字符串長度小于定義長度時,則會以不同的方式來處理,如char(10),表示存儲的是10個字符,無論你插入的是多少,都是10個,如果少于10個,則用空格填滿。而varchar(10),小于10個的話,則插入多少個字符就存多少個。

varchar怎么知道所存儲字符串的長度呢?實際上,對于varchar字段來說,需要使用一個(如果字符串長度小于255)或兩個字節(jié)(長度大于255)來存儲字符串的長度。但是因為他需要有一個prefix來表示他具體bytes數是多少(因為varchar是變長的,沒有這個長度值他不知道如何讀取數據)。

推薦:MySQL教程

區(qū)別二、存儲的容量不同

1、對 char 來說,最多能存放的字符個數 255,和編碼無關。

2、而 varchar 呢,最多能存放 65532 個字符。VARCHAR 的最大有效長度由最大行大小和使用的字符集確定。整體最大長度是 65,532字節(jié)

在MySQL中用來判斷是否需要進行對據列類型轉換的規(guī)則

1、在一個數據表里,如果每一個數據列的長度都是固定的,那么每一個數據行的長度也將是固定的.

2、只要數據表里有一個數據列的長度的可變的,那么各數據行的長度都是可變的.

3、如果某個數據表里的數據行的長度是可變的,那么,為了節(jié)約存儲空間,MySQL會把這個數據表里的固定長度類型的數據列轉換為相應的可變長度類型.例外:長度小于4個字符的char數據列不會被轉換varchar類型

以上是MySQL中char和varchar有什么不一樣的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI