婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 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的區別的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产成人午夜99999| 亚洲美女区一区| 日韩欧美一级二级| 一区二区在线观看视频| 日韩成人伦理电影在线观看| 日韩一区二区在线免费观看| 亚洲人成网站色在线观看| 极品少妇xxxx精品少妇偷拍| 欧美日韩国产欧美日美国产精品| 亚洲精品视频在线观看免费| 成人午夜激情视频| 国产欧美一区二区精品性| 亚洲二区视频在线| 欧美性大战久久久久久久蜜臀| 久久久精品一品道一区| 福利一区在线观看| 国产欧美一区二区精品性| 国产69精品久久777的优势| 中文字幕久久午夜不卡| 91免费观看视频| 亚洲四区在线观看| 在线视频亚洲一区| 爽好久久久欧美精品| 精品少妇一区二区三区在线视频| 久久激情综合网| 中文字幕欧美一区| 欧美日韩亚洲不卡| 日韩精品乱码av一区二区| 欧美tk—视频vk| 成人ar影院免费观看视频| 亚洲日本在线a| 精品国产三级电影在线观看| 国产美女av一区二区三区| 亚洲国产精品精华液2区45| 91色九色蝌蚪| 蜜桃av一区二区在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 成人午夜短视频| 一区二区三区在线视频播放| 欧美伊人精品成人久久综合97| 国精品**一区二区三区在线蜜桃| 国产无遮挡一区二区三区毛片日本| 9i在线看片成人免费| 天天综合网 天天综合色| 日韩欧美卡一卡二| 国产在线视频精品一区| 综合电影一区二区三区| 日韩午夜av一区| 国产在线视视频有精品| 天天影视网天天综合色在线播放| 在线观看日韩高清av| 婷婷丁香激情综合| 欧美不卡一二三| 国产精品一线二线三线| 亚洲精品videosex极品| 9191久久久久久久久久久| 丁香六月久久综合狠狠色| 亚洲少妇中出一区| 51精品久久久久久久蜜臀| av网站免费线看精品| 国产一区二区三区香蕉| 亚洲欧洲韩国日本视频| 2020国产精品久久精品美国| 色综合色综合色综合色综合色综合| 秋霞电影网一区二区| 国产精品第四页| 欧美一区二区三区视频在线观看| 99国产一区二区三精品乱码| 久久国产夜色精品鲁鲁99| 天天色 色综合| 国产精品剧情在线亚洲| 26uuu色噜噜精品一区二区| 精品国产一区二区三区忘忧草| 欧美日韩国产首页| 在线成人免费观看| 色婷婷一区二区三区四区| 99久精品国产| 国产a区久久久| 青娱乐精品在线视频| 99久久精品情趣| 国产麻豆视频精品| 首页国产欧美日韩丝袜| 一个色妞综合视频在线观看| 最新国产の精品合集bt伙计| 国产视频视频一区| 精品美女在线观看| 欧美xxxxxxxx| 日韩区在线观看| 久久影院午夜片一区| 久久久国产综合精品女国产盗摄| 538在线一区二区精品国产| 欧美日韩国产首页| 欧美成人vr18sexvr| 久久久噜噜噜久噜久久综合| 日日欢夜夜爽一区| 亚洲福利一区二区| 亚洲123区在线观看| 丝袜a∨在线一区二区三区不卡| 亚洲大型综合色站| 亚洲午夜免费电影| 韩国理伦片一区二区三区在线播放| 免费不卡在线视频| 福利电影一区二区| 91一区二区三区在线播放| 成人v精品蜜桃久久一区| 91日韩在线专区| 欧美日韩高清影院| wwwwxxxxx欧美| 亚洲一级在线观看| 蜜臀久久久99精品久久久久久| 国产精品一区二区三区网站| www.亚洲在线| 337p亚洲精品色噜噜狠狠| 中文字幕av一区二区三区高| 亚洲大片在线观看| 精品夜夜嗨av一区二区三区| 欧美一a一片一级一片| 色av一区二区| 日韩女优毛片在线| 亚洲欧美日韩国产中文在线| 日本成人中文字幕在线视频| 成人污污视频在线观看| 欧美精三区欧美精三区| 中文字幕成人av| 男男gaygay亚洲| 欧美一区二区免费视频| 中文字幕一区二区三区蜜月| 久久69国产一区二区蜜臀| 欧美日韩国产经典色站一区二区三区 | 8x8x8国产精品| 亚洲精品一线二线三线| 中文字幕中文字幕在线一区| 美女精品一区二区| 欧美精品第1页| 亚洲精品成a人| gogogo免费视频观看亚洲一| 久久精品视频一区二区三区| 秋霞午夜鲁丝一区二区老狼| 欧美色图在线观看| 一区二区三区国产精品| 成人av综合在线| 久久久噜噜噜久久中文字幕色伊伊| 男男视频亚洲欧美| 日韩欧美一区电影| 奇米一区二区三区| 欧美性猛片xxxx免费看久爱| 一区二区三区高清不卡| 国产成人精品亚洲777人妖 | 久久99久国产精品黄毛片色诱| 欧美久久一区二区| 亚洲激情五月婷婷| 99久久99久久综合| 国产欧美日韩在线看| 成人av在线播放网址| 91首页免费视频| 国产精品久久久久久久蜜臀| 国产福利一区在线观看| 国产欧美精品国产国产专区| 国产宾馆实践打屁股91| 国产亚洲一区二区三区在线观看 | 亚洲女性喷水在线观看一区| av午夜精品一区二区三区| 中文字幕不卡一区| 欧洲av在线精品| 日韩一区精品字幕| 久久亚洲私人国产精品va媚药| 国产成人精品亚洲日本在线桃色| 国产精品成人一区二区艾草| 色哟哟精品一区| 精品成a人在线观看| 色噜噜夜夜夜综合网| 成人国产免费视频| 欧美高清在线一区| 成人午夜免费视频| 国产丶欧美丶日本不卡视频| 在线免费不卡视频| 高清不卡一二三区| 一区二区三区欧美亚洲| 3751色影院一区二区三区| 激情五月播播久久久精品| 中文字幕国产精品一区二区| 91猫先生在线| 秋霞午夜av一区二区三区| 久久亚洲精精品中文字幕早川悠里| 国产成人免费在线视频| 亚洲一区欧美一区| 欧美精品一区二区三区久久久 | 久久这里只有精品视频网| 欧美一级视频精品观看| 天堂成人免费av电影一区| 国产亚洲美州欧州综合国| 久久精子c满五个校花| 久久综合色天天久久综合图片| 91色porny在线视频| 蜜臀av性久久久久蜜臀aⅴ| 国产精品看片你懂得| 欧美精品日韩一区| 91老司机福利 在线| 蜜桃视频免费观看一区| 欧美精彩视频一区二区三区|