校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > MYSQL中 char 和 varchar的區別

MYSQL中 char 和 varchar的區別

熱門標簽:新鄉智能外呼系統好處 許昌外呼增值業務線路 臨沂做地圖標注 地圖標注客戶付款 廣東400企業電話申請流程 宜賓全自動外呼系統廠家 申請400電話電話價格 石家莊400電話辦理公司 咸陽防封電銷卡

CHAR和VARCHAR類型相似,差別主要在存儲,尾隨空格和檢索方式上。

CHAR和VARCHAR相同的是:CHAR和VARCHAR都指定了字符長度,注意是字符長度。例如char(30) 和 varchar(30)表示都可以存30個字符。有一點要注意的是在utf8mb4編碼中,每個字符占4個節點。在utf8中,每個字符占3個字節。當要存儲的字符超過CHAR/VARCHAR指定的最大長度。在sql mode 沒開啟的時候是截斷要存儲的字串,只存儲前30位

CHAR列中的值是定長的字符串。長度可以指定為0到255個字符(例如utf8mb4: 0-255*4個字節)之間的值當使用CHAR存儲字符時,以CHAR(30)為例,不夠30個字符的以空格向右填充。當檢索CHAR值時,除非啟用sqlmode:PAD_CHAR_TO_FULL-LENGTH SQL模式,否則將刪除尾部空格。

VARCHAR列中的值是可變長度的字符串。長度可以指定為0到65535字節之間的值。VARCHAR的有效最大長度取決于最大行大小(65535字節,在所有列之間共享)和使用的字符集

與CHAR不同的是,VARCHAR在存儲數據的時候,會額外存儲存儲1-2個字節(例如varchar(4),這1-2個字節長度不會算在這4個字符長度里面,不用擔心被截斷),這1-2個字節用來記錄數據字符的長度。假如數據字符長度小于等于255,則使用1個字節記錄數據長度。大于則用兩個字節。CHAR只存儲數據本身。如下圖所示。

(誤區:varchar在查詢時比char慢是因為會計算varchar的字節長度(X))

在latin1編碼中,Latin1不能存中文。英文字母為1個字節。

Value CHAR(4) Storage Required VARCHAR(4) Storage Required
'' ' ' 4 bytes '' 1 byte
'ab' 'ab ' 4 bytes 'ab' 3 byte
'abcd' 'abcd' 4 bytes 'abcd' 5 byte
'abcdefgh' 'abcd' 4 bytes 'abcd' 5 byte

需要注意的是VARCHAR值在存儲時不填充空格。在存儲和檢索值時,尾部空格將被保留,這與標準SQL一致。而CHAR則相反,CHAR在儲存時會填充空格,在檢索時尾部空格會去掉,無論這個尾部空格是自動填充的還是數據本身的。舉個例子:

mysql> CREATE TABLE vc (v VARCHAR(4), c CHAR(4));
Query OK, 0 rows affected (0.01 sec)
 
mysql> INSERT INTO vc VALUES ('ab ', 'ab ');
Query OK, 1 row affected (0.00 sec)
 
mysql> SELECT CONCAT('(', v, ')'), CONCAT('(', c, ')') FROM vc;
+---------------------+---------------------+
| CONCAT('(', v, ')') | CONCAT('(', c, ')') |
+---------------------+---------------------+
| (ab )    | (ab)    |
+---------------------+---------------------+
1 row in set (0.06 sec)br>br>br>

做三個實驗。

mysql> show create table vc;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                   |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------+
| vc | CREATE TABLE `vc` (
 `v` varchar(4) DEFAULT NULL,
 `c` char(4) DEFAULT NULL,
 UNIQUE KEY `v_UNIQUE` (`v`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

1.查詢語句 where 字段=' ab';

mysql> SELECT concat('(',v, ')'),concat('(',c, ')') FROM vc where v='    ab';
Empty set (0.00 sec)
 
mysql> SELECT concat('(',v, ')'),concat('(',c, ')') FROM vc where c='     ab';
Empty set (0.00 sec)

2.查詢語句 where 字段='ab ';

mysql> SELECT concat('(',v, ')'),concat('(',c, ')') FROM vc where v='ab    ';
+--------------------+--------------------+
| concat('(',v, ')') | concat('(',c, ')') |
+--------------------+--------------------+
| (ab )    | (ab)    |
+--------------------+--------------------+
1 row in set (0.00 sec)
 
mysql> SELECT concat('(',v, ')'),concat('(',c, ')') FROM vc where c='ab    ';
+--------------------+--------------------+
| concat('(',v, ')') | concat('(',c, ')') |
+--------------------+--------------------+
| (ab )    | (ab)    |
+--------------------+--------------------+
1 row in set (0.00 sec)br>br>br>在所有字符串的比較中,不論是varchar,text,char 都會忽略去掉尾部空格,除了like子句,like子句不會去掉尾部空格如下所示br>br>
mysql> SELECT concat('(',v, ')'),concat('(',c, ')') FROM vipshop_dba.vc where c like 'ab'; (無尾部空格)
+--------------------+--------------------+
| concat('(',v, ')') | concat('(',c, ')') |
+--------------------+--------------------+
| (ab ) | (ab) |
| ( ab ) | (ab) |
+--------------------+--------------------+
2 rows in set (0.00 sec)
 
mysql> SELECT concat('(',v, ')'),concat('(',c, ')') FROM vipshop_dba.vc where c like 'ab '; (有尾部空格)
Empty set (0.00 sec)
 
 
 
CHAR在儲存時會填充空格,在檢索時尾部空格會去掉,無論這個尾部空格是自動填充的還是數據本身的。這個去掉尾部空格的動作在比較之前會發生
 
 
 
mysql> SELECT concat('(',v, ')'),concat('(',c, ')') FROM vipshop_dba.vc where v like 'ab '; (有尾部空格)
+--------------------+--------------------+
| concat('(',v, ')') | concat('(',c, ')') |
+--------------------+--------------------+
| (ab ) | (ab) |
+--------------------+--------------------+
1 row in set (0.01 sec)
 
mysql> SELECT concat('(',v, ')'),concat('(',c, ')') FROM vipshop_dba.vc where v like 'ab'; (無尾部空格)
Empty set (0.00 sec)

3.varchar 設置unique 索引 觀察 'ab' 和 'ab '是否同時能存在

mysql> insert into vc (v,c)values('ab  ', 'ab  ')
 -> ;
ERROR 1062 (23000): Duplicate entry 'ab ' for key 'v_UNIQUE'
mysql> insert into vc (v,c)values(' ab  ', 'ab  ')
 -> ;
Query OK, 1 row affected, 1 warning (0.00 sec)br>說明雖然varchar 尾部空格可以保留,但是索引上似乎額外做了限制。如果varchar是唯一索引,插入的值區別只在于尾部空格的數量的話則會報 Duplicate key

說到字節限制這個問題,也想提醒一下。索引長度也是有限制的噢:

innodb引擎的每個索引列長度限制為767字節(bytes),所有組成索引列的長度和不能大于3072字節。注意是字節,varchar(256)在不同的編碼字節計算不同。例如在utf8mb4中,一個字符占4個字節,256個字符=1024個字節。就達不到索引覆蓋的效果噢。相當于只做了一個前綴索引(非常重要,前綴索引是需要回(主鍵)表的,二次查詢)

innodb引擎可以通過配置innodb_large_prefix=on(全局參數,動態生效)來讓單個索引列長度限制上升到3072字節

  • 在MySQL5.7里默認 innodb_large_prefix=1 解除了767bytes長度限制,但是單列索引長度最大還是不能超過3072bytes
  • 在MySQL5.6里默認 innodb_large_prefix=0 限制單列索引長度不能超過767bytes。需要設置innodb_large_prefix=ON、innodb_file_format=barracuda、innodb_file_per_table=ON ,且Innodb表的存儲格式為 DYNAMIC 或 COMPRESSED,則前綴索引最多可包含3072個字節

以上就是MYSQL中 char 和 varchar的區別的詳細內容,更多關于MYSQL char 和 varchar的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL CHAR和VARCHAR該如何選擇
  • Mysql中varchar類型一些需要注意的地方
  • MySQL CHAR和VARCHAR存儲、讀取時的差別
  • MySQL中字段類型char、varchar和text的區別
  • mysql varchar類型求和實例操作
  • 對比MySQL中int、char以及varchar的性能
  • MySQL動態修改varchar長度的方法
  • Mysql中varchar長度設置方法
  • Mysql數據庫中把varchar類型轉化為int類型的方法
  • mysql如何處理varchar與nvarchar類型中的特殊字符
  • 當面試官問mysql中char與varchar的區別

標簽:貴州 北京 鎮江 阜新 鷹潭 臺灣 日照 合肥

巨人網絡通訊聲明:本文標題《MYSQL中 char 和 varchar的區別》,本文關鍵詞  MYSQL,中,char,和,varchar,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MYSQL中 char 和 varchar的區別》相關的同類信息!
  • 本頁收集關于MYSQL中 char 和 varchar的區別的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    7777精品伊人久久久大香线蕉的 | 夜色激情一区二区| 日韩欧美高清一区| 91精品国产aⅴ一区二区| 在线不卡一区二区| 欧美三级乱人伦电影| 欧美日韩视频在线观看一区二区三区| 青青青伊人色综合久久| 亚洲欧洲三级电影| 国产精品久久久一区麻豆最新章节| 国产亚洲欧美日韩俺去了| 久久综合中文字幕| 国产精品美日韩| 综合亚洲深深色噜噜狠狠网站| 国产精品无遮挡| 国产精品国产三级国产aⅴ中文| 中文字幕在线观看不卡| 日韩免费看网站| 欧美日韩国产综合一区二区| 精品视频在线免费| 欧美一级一区二区| 久久久午夜精品理论片中文字幕| 久久九九影视网| 国产精品欧美综合在线| 一区二区在线观看免费视频播放| 一区二区三区不卡视频在线观看| 日韩不卡免费视频| 成人福利在线看| 欧美伦理影视网| 国产欧美日韩精品a在线观看| 亚洲视频资源在线| 国产在线看一区| 日本韩国一区二区| 国产午夜精品久久久久久免费视| 亚洲欧美激情一区二区| 美国毛片一区二区三区| 日本韩国欧美一区二区三区| 夜夜嗨av一区二区三区 | 日韩免费电影一区| 国产精品五月天| 日韩精品一二三| 色综合天天综合网天天狠天天| 91精品国产综合久久精品性色| 国产香蕉久久精品综合网| 亚洲超碰精品一区二区| 国产aⅴ精品一区二区三区色成熟| 在线观看一区二区精品视频| 国产日韩一级二级三级| 日日欢夜夜爽一区| 色综合色综合色综合色综合色综合| 日韩精品资源二区在线| 亚洲一区二区欧美激情| 成人国产精品免费观看视频| 日韩久久久精品| 日本不卡中文字幕| 在线精品亚洲一区二区不卡| 国产清纯白嫩初高生在线观看91| 日本不卡一区二区| 欧美日韩中文字幕一区| 亚洲人成精品久久久久久| 粉嫩在线一区二区三区视频| 欧美本精品男人aⅴ天堂| 日韩国产高清影视| 欧美日本视频在线| 亚洲国产成人av网| 色综合久久久久| 国产精品灌醉下药二区| 成人免费毛片高清视频| 久久久蜜桃精品| 国产乱子伦视频一区二区三区 | 石原莉奈一区二区三区在线观看| 在线观看91视频| 亚洲国产人成综合网站| 欧美性受xxxx| 日本va欧美va欧美va精品| 欧美美女一区二区在线观看| 婷婷激情综合网| 日韩视频免费观看高清在线视频| 亚洲h精品动漫在线观看| 欧美日韩不卡一区| 蜜臀久久99精品久久久久宅男 | 日韩欧美资源站| 久久精品国产亚洲5555| 久久综合久久综合久久| 国产一区二区三区在线观看免费| 久久夜色精品一区| 成人性色生活片| 成人欧美一区二区三区| 色女孩综合影院| 香蕉成人啪国产精品视频综合网 | 大胆欧美人体老妇| 日韩伦理电影网| 欧美亚洲愉拍一区二区| 日韩黄色一级片| 日本一区二区三区免费乱视频| 波波电影院一区二区三区| 亚洲综合一二三区| 制服.丝袜.亚洲.另类.中文| 精品午夜久久福利影院| 中文字幕中文字幕一区| 欧美欧美午夜aⅴ在线观看| 九色综合国产一区二区三区| 国产精品天干天干在线综合| 欧洲精品在线观看| 国产精品香蕉一区二区三区| 亚洲精品中文字幕在线观看| 欧美一区二区在线播放| 国产91综合网| 午夜精彩视频在线观看不卡| 国产人妖乱国产精品人妖| 欧美亚洲愉拍一区二区| 成人免费视频国产在线观看| 三级一区在线视频先锋| 中文字幕亚洲在| 欧美sm美女调教| 欧美色爱综合网| 成人性生交大合| 七七婷婷婷婷精品国产| 一区二区三区产品免费精品久久75| 欧美成人精品二区三区99精品| 91浏览器入口在线观看| 国产一区二区三区免费在线观看| 亚洲国产日日夜夜| 日韩一区在线看| 国产女人aaa级久久久级| 7777精品伊人久久久大香线蕉经典版下载 | 麻豆精品在线观看| 欧美一三区三区四区免费在线看| 精品一区二区三区在线播放 | 国产尤物一区二区| 日日夜夜免费精品| 亚洲欧美一区二区三区孕妇| 精品久久久久久久人人人人传媒| 在线观看亚洲专区| 成人爽a毛片一区二区免费| 免费高清在线一区| 一区av在线播放| 国产精品福利电影一区二区三区四区| 日韩一级欧美一级| 欧美日韩一级黄| 在线视频一区二区三区| 免费人成在线不卡| 午夜精品视频在线观看| 综合电影一区二区三区| 中文字幕乱码久久午夜不卡 | 日韩一区二区三免费高清| 欧洲人成人精品| 欧美亚男人的天堂| 欧美性大战久久久久久久 | 五月婷婷综合激情| 亚洲高清不卡在线观看| 亚洲国产精品久久不卡毛片 | 国产欧美综合在线| 国产亚洲一区二区三区| 久久综合精品国产一区二区三区 | 亚洲欧美另类在线| 一区二区欧美国产| 一区二区免费在线播放| 亚洲国产精品尤物yw在线观看| 亚洲在线中文字幕| 全国精品久久少妇| 国产在线一区二区综合免费视频| 久久av资源站| 国产99精品国产| 91豆麻精品91久久久久久| 欧美三级乱人伦电影| 欧美大肚乱孕交hd孕妇| 久久综合九色综合97婷婷| 国产精品久久久久永久免费观看 | 欧美亚洲综合在线| 91精品国产综合久久福利| 欧美精品一区二区三区蜜桃 | 欧美日韩一区高清| 精品少妇一区二区三区日产乱码 | 亚洲高清不卡在线观看| 久久成人久久鬼色| 成人精品鲁一区一区二区| 色综合视频在线观看| 日韩一区二区在线免费观看| 久久久噜噜噜久噜久久综合| 一区精品在线播放| 人人精品人人爱| 99久久精品国产观看| 欧美一区二区三区白人| 国产情人综合久久777777| 一区二区在线观看免费 | 91丨九色porny丨蝌蚪| 欧美一区二区国产| 中文字幕一区二区三中文字幕| 肉肉av福利一精品导航| av在线一区二区| 日韩丝袜美女视频| 亚洲愉拍自拍另类高清精品| 国产一区在线视频| 欧美日韩成人一区| 亚洲欧美电影一区二区| 国产精品一区专区| 91精品国产一区二区三区蜜臀| 136国产福利精品导航| 精品一二三四区|