最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 20:55:36
文檔

MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別

MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別:區(qū)別 CHAR與VARCHAR類型類似,但它們保存和檢索的方式不同。CHAR有固定的長度,而VARCHAR屬于可變長的字符類型。它們最大長度和是否尾部空格被保留等方面也不同。在存儲和檢索過程中不進行大小寫轉(zhuǎn)換。 下面的表格顯示了將各種字符串值保存到CHAR(4)和
推薦度:
導(dǎo)讀MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別:區(qū)別 CHAR與VARCHAR類型類似,但它們保存和檢索的方式不同。CHAR有固定的長度,而VARCHAR屬于可變長的字符類型。它們最大長度和是否尾部空格被保留等方面也不同。在存儲和檢索過程中不進行大小寫轉(zhuǎn)換。 下面的表格顯示了將各種字符串值保存到CHAR(4)和

區(qū)別

CHAR與VARCHAR類型類似,但它們保存和檢索的方式不同。CHAR有固定的長度,而VARCHAR屬于可變長的字符類型。它們最大長度和是否尾部空格被保留等方面也不同。在存儲和檢索過程中不進行大小寫轉(zhuǎn)換。

下面的表格顯示了將各種字符串值保存到CHAR(4)和VARCHAR(4)列后的結(jié)果,說明了CHAR和VARCHAR之間的差別:

值 CHAR(4) 存儲需求 VARCHAR(4) 存儲需求
'' ' ' 4個字節(jié) '' 1個字節(jié)
'ab' 'ab ' 4個字節(jié) 'ab' 3個字節(jié)
'abcd' 'abcd' 4個字節(jié) 'abcd' 5個字節(jié)
'abcdefgh' 'abcd' 4個字節(jié) 'abcd' 5個字節(jié)

從上面可以看得出來CHAR的長度是固定的,不管你存儲的數(shù)據(jù)是多少他都會都固定的長度。而VARCHAR則處可變長度但他要在總長度上加1字節(jié),這個用來存儲字符長度(如果聲明的長度超過255,則使用2個字節(jié))。所以實際應(yīng)用中用戶可以根據(jù)自己的數(shù)據(jù)類型來做。

請注意,上表中最后一行的值只適用不使用嚴(yán)格模式時;如果MySQL運行在嚴(yán)格模式,超過列長度的值不被保存,并且會出現(xiàn)錯誤。

從CHAR(4)和VARCHAR(4)列檢索的值并不總是相同,因為檢索時從CHAR列刪除了尾部的空格。通過下面的例子說明差別:

mysql> CREATE TABLE test(a VARCHAR(4), b CHAR(4));

mysql> INSERT INTO test VALUES ('ab ', 'ab ');

mysql> SELECT CONCAT(a, '+'), CONCAT(b, '+') FROM test;

結(jié)果如下:

CONCAT(a, '+') CONCAT(b, '+')
ab + ab+

從上面可以看出來,由于某種原因CHAR有固定長度,所以在處理速度上要比VARCHAR快很多,但是相對浪費存儲空間,所以對存儲不大,但在速度上有要求的可以使用CHAR類型,反之可以用VARCHAR類型來實現(xiàn)。

建議

MyISAM存儲引擎 建議使用固定長度,數(shù)據(jù)列代替可變長度的數(shù)據(jù)列
INNODB 存儲引擎 建議使用VARCHAR類型

總結(jié)分析:

文字字段若長度固定,如:身分證號碼,就不要用 varchar 或 nvarchar,應(yīng)該用 char 或 nchar。
支持多語言的站點應(yīng)考慮使用 Unicode nchar 或 nvarchar 數(shù)據(jù)類型以盡量減少字符轉(zhuǎn)換問題
文字字段若長度不固定,如:地址,則該用 varchar 或 nvarchar。除了可節(jié)省存儲空間外,存取硬盤時也會較有效率

您可能感興趣的文章:

  • 對比MySQL中int、char以及varchar的性能
  • MySQL動態(tài)修改varchar長度的方法
  • Mysql中varchar長度設(shè)置方法
  • Mysql數(shù)據(jù)庫中把varchar類型轉(zhuǎn)化為int類型的方法
  • MySQL數(shù)據(jù)庫中把int轉(zhuǎn)化varchar引發(fā)的慢查詢
  • MySQL中把varchar類型轉(zhuǎn)為date類型方法詳解
  • 探究MySQL中varchar的定義長度
  • mysql varchar類型求和實例操作
  • 聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別

    MySQL中VARCHAR與CHAR格式數(shù)據(jù)的區(qū)別:區(qū)別 CHAR與VARCHAR類型類似,但它們保存和檢索的方式不同。CHAR有固定的長度,而VARCHAR屬于可變長的字符類型。它們最大長度和是否尾部空格被保留等方面也不同。在存儲和檢索過程中不進行大小寫轉(zhuǎn)換。 下面的表格顯示了將各種字符串值保存到CHAR(4)和
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top