欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > Mysql中varchar類型一些需要注意的地方

Mysql中varchar類型一些需要注意的地方

熱門標簽:武漢網絡外呼系統服務商 百應電話機器人優勢 外呼系統打電話上限是多少 電話外呼系統改號 怎樣在地圖標注銷售區域 曲靖移動外呼系統公司 啥是企業400電話辦理 南昌三維地圖標注 地圖標注費用是多少

varchar的存儲規則

4.0版本以下,varchar(20),指的是20字節,如果存放UTF8漢字時,只能存6個(每個漢字3字節)。
5.0版本以上,varchar(20),指的是20字符,無論存放的是數字、字母還是UTF8漢字(每個漢字3字節),都可以存放20個,最大大小是65532字節。
varchar 字段是將實際內容單獨存儲在聚簇索引之外,內容開頭用1到2個字節表示實際長度。
官方是這么說的:

Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions.
In contrast to CHAR, VARCHAR values are stored as a one-byte or two-byte length prefix plus data. The length prefix indicates the number of bytes in the value.
A column uses one length byte if values require no more than 255 bytes, two length bytes if values may require more than 255 bytes.

varchar和char 的區別

區別一,定長和變長

char 表示定長,長度固定,varchar表示變長,即長度可變。當所插入的字符串超出它們的長度時,視情況來處理,如果是嚴格模式,則會拒絕插入并提示錯誤信息,如果是寬松模式,則會截取然后插入。如果插入的字符串長度小于定義長度時,則會以不同的方式來處理,如char(10),表示存儲的是10個字符,無論你插入的是多少,都是10個,如果少于10個,則用空格填滿。而varchar(10),小于10個的話,則插入多少個字符就存多少個。
varchar怎么知道所存儲字符串的長度呢?實際上,對于varchar字段來說,需要使用一個(如果字符串長度小于255)或兩個字節(長度大于255)來存儲字符串的長度。但是因為他需要有一個prefix來表示他具體bytes數是多少(因為varchar是變長的,沒有這個長度值他不知道如何讀取數據)。

區別之二,存儲的容量不同

對 char 來說,最多能存放的字符個數 255,和編碼無關。
而 varchar 呢,最多能存放 65532 個字符。VARCHAR 的最大有效長度由最大行大小和使用的字符集確定。整體最大長度是 65,532字節

varchar的編碼長度限制

字符類型若為 gbk,則個字符最多占2個字節,最大長度不能超過32766; 字符類型若為utf8,則每個字符最多占3個字節,最大長度不能超過21845。 若定義的時候超過上述限制,則varchar字段會被強行轉為text類型,并產生warning。

行長度限制

導致實際應用中varchar長度限制的是一個行定義的長度。 MySQL要求一個行的定義長度不能超過65535。若定義的表長度超過這個值,則提示 ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs。
這就是說,比如創建一個表,表結構中有兩個varhcar類型字段,那么這兩個字段的總長度不能超過65535。
官方說明如下:

Every table has a maximum row size of 65,535 bytes.
This maximum applies to all storage engines, but a given engine might have additional constraints that result in a lower effective maximum row size.

varchar的控制位

MySQL 中的Varchar字符類型還保留了1個字節來留其它控制信息。

示例

示例一:若一張表中只有一個字段VARCHAR(N)類型,utf8編碼,則N最大值為多少?

如:create table tb_name1(a varchar(N)) default charset=utf8,則N最大值=(65535-1-2)/3=21844。
減1的原因是實際行存儲從第二個字節開始。
減2的原因是varchar頭部的2個字節表示長度。
除3的原因是字符編碼是utf8。
sql測試:

create table tb_name1(a varchar(21844)) default charset=utf8;
Query OK, 0 rows affected (0.38 sec)

drop table tb_name1;
Query OK, 0 rows affected (0.00 sec)

create table tb_name1(a varchar(21845)) default charset=utf8;
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns 

示例二:若一張表中有一個字段VARCHAR(N)類型,并且有其它的字段類型,utf8編碼,則N的最大值為多少?

如:create table tb_name2(a int, b char(20), c varchar(N)) default charset=utf8;
則:N最大值=(65535-1-2-4-203)/3=21822
減1的原因是實際行存儲從第二個字節開始。
減2的原因是varchar頭部的2個字節表示長度。
減4的原因是a字段的int類型占4個字節。
減203的原因是char(20)占用60個字節,編碼是utf8。

sql測試:

create table tb_name2(a int, b char(20), c varchar(21822)) default charset=utf8;
Query OK, 0 rows affected (0.28 sec)

drop table tb_name2;
Query OK, 0 rows affected (0.20 sec)

create table tb_name2(a int, b char(20), c varchar(21823)) default charset=utf8;
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs

示例三:若一張表中有多字段VARCHAR(N)類型,并且有其它的字段類型,gbk編碼,則N的最大值為多少?

如:create table tb_name3(a int, b char(20), c varchar(50), d varchar(N)) default charset=gbk;
則:N最大值=(65535-1-1-2-4-202-502)/2=32693
第一個減1的原因是實際行存儲從第二個字節開始。
第二個減1表示第二個varchar(50)頭部一個1個字節表示長度(小于255)。
減2的原因是varchar頭部的2個字節表示長度。
減202的原因是char(20)占用40個字節,編碼是gbk。
減502的原因是varchar(50)占用100個字節,編碼是gbk。

SQL測試:

create table tb_name3(a int, b char(20), c varchar(50), d varchar(32694)) default charset=gbk;
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
create table tb_name3(a int, b char(20), c varchar(50), d varchar(32693)) default charset=gbk;
Query OK, 0 rows affected (0.18 sec)

以上就是Mysql中varchar類型一些需要注意的地方的詳細內容,更多關于Mysql varchar類型的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL CHAR和VARCHAR該如何選擇
  • MySQL CHAR和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中varchar類型一些需要注意的地方》,本文關鍵詞  Mysql,中,varchar,類型,一些,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Mysql中varchar類型一些需要注意的地方》相關的同類信息!
  • 本頁收集關于Mysql中varchar類型一些需要注意的地方的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    91丨九色丨黑人外教| 色婷婷激情综合| 日韩欧美在线1卡| 午夜精品久久久久久久久久久 | 成人欧美一区二区三区白人| 国产一区二区三区国产| 91麻豆制片厂| 日本一区免费视频| 狠狠色丁香婷综合久久| 久久国产柳州莫菁门| 久久久久久久综合色一本| 麻豆精品国产传媒mv男同| 少妇特黄一区二区三区| 亚洲精品在线观看网站| 精品一区二区三区久久久| 法国空姐电影在线观看| 久久亚洲免费视频| 国产一区二区免费在线| 羞羞在线观看视频| 国产欧美一区二区三区鸳鸯浴 | 激情小说欧美图片| 国产又粗又猛又爽又黄av | 日韩三级av在线播放| 美腿丝袜亚洲三区| 欧美特级黄色录像| 久久婷婷国产综合国色天香| 一区二区三区四区乱视频| 国产精品一线二线三线| 国产小视频你懂的| 中文字幕在线不卡视频| 99久久免费视频.com| 欧美主播一区二区三区| 亚洲图片一区二区| 亚洲精品乱码久久久久久久| 久久综合九色综合97婷婷女人| 精品一区二区三区的国产在线播放 | 极品美女销魂一区二区三区 | 中文字幕在线2021| 亚洲色图色小说| 免费黄视频在线观看| 日韩三级精品电影久久久| 激情伊人五月天久久综合| 亚洲成人生活片| 亚洲国产一二三| 免费看黄色的视频| 中文字幕免费不卡| 九色91porny| 日韩欧美色综合网站| 国产精品一卡二卡在线观看| 日本乱人伦aⅴ精品| 日韩国产高清在线| 成人涩涩小片视频日本| 亚洲国产日韩综合久久精品| 国产精品高清无码在线观看| 中文字幕一区二区三区乱码在线| 成年女人免费视频| 国产欧美一区视频| 成年女人免费视频| 中国色在线观看另类| 国产情侣久久久久aⅴ免费| 欧美mv日韩mv国产| 92国产精品观看| 精品国产乱码久久久久久久久| 岛国精品在线播放| 91精品国产手机| 国产成人精品亚洲日本在线桃色 | 国产又爽又黄无码无遮挡在线观看| 国产清纯在线一区二区www| 在线播放国产视频| 国产欧美视频一区二区| 97精品人人妻人人| 国产午夜精品久久| 中国极品少妇xxxx| 国产精品久久久久影院色老大| a天堂视频在线观看| 国产精品全国免费观看高清| 99精品一区二区三区无码吞精| 国产嫩草影院久久久久| 中国xxxx性xxxx产国| 亚洲国产电影在线观看| 黄色性生活一级片| 亚洲欧美国产毛片在线| 久久美女免费视频| 亚洲一卡二卡三卡四卡无卡久久| 欧美88888| 日本vs亚洲vs韩国一区三区| 日本韩国一区二区三区视频| 紧缚奴在线一区二区三区| 欧美视频你懂的| 国产福利电影一区二区三区| 日韩三级视频在线看| 青青草精品在线| 日本一二三不卡| 亚洲 小说 欧美 激情 另类| 亚洲一区二区不卡免费| 一本色道久久综合亚洲91| 久久99精品一区二区三区三区| 欧美日韩中文一区| 成人国产电影网| 久久久久九九视频| a视频免费观看| 亚洲国产视频一区| 色狠狠桃花综合| 国产乱码一区二区三区| 欧美成人女星排行榜| 熟妇人妻久久中文字幕| 亚洲图片欧美一区| 91成人在线免费观看| 成人一区二区三区| 国产欧美日韩视频在线观看| 六月婷婷七月丁香| 日韩成人免费看| 制服丝袜成人动漫| 一本色道久久hezyo无码| 亚洲靠逼com| 国产盗摄x88av| 成人晚上爱看视频| 欧美国产精品v| 国产三级在线观看完整版| 精品亚洲国内自在自线福利| 精品伦理精品一区| 3d动漫精品啪啪一区二区下载| 五月婷婷色综合| 欧美一区二区三区视频免费播放| 人妻 日韩 欧美 综合 制服| 偷拍与自拍一区| 7878成人国产在线观看| 无码人妻精品一区二区三区99不卡| 亚洲国产美国国产综合一区二区| 欧美三级日韩在线| 国产ts在线观看| 午夜欧美电影在线观看| 91精品蜜臀在线一区尤物| 国产传媒第一页| 看片网站欧美日韩| 国产亚洲精品精华液| 国产精品18在线| 成人免费视频播放| 自拍偷在线精品自拍偷无码专区| 色老综合老女人久久久| 潘金莲一级淫片aaaaa| 天天综合网 天天综合色| 日韩欧美精品在线| 国产精品无码无卡无需播放器| 国产精品一区二区无线| 国产精品美女久久久久久久| 国产suv一区二区三区| 97se亚洲国产综合自在线不卡| 一区二区三区鲁丝不卡| 欧美日韩高清在线| av无码av天天av天天爽| 狠狠色狠狠色综合| 黄色国产在线观看| b站大片免费直播| 美女免费视频一区| 久久久99精品免费观看| 欧美做爰啪啪xxxⅹ性| 成人av在线播放网址| 亚洲综合免费观看高清完整版在线| 欧美日本一区二区| 亚洲最大成人网站| 国产91精品精华液一区二区三区| 亚洲欧美日韩国产中文在线| 欧美日本乱大交xxxxx| 亚洲成人黄色av| 成人午夜电影久久影院| 亚洲二区视频在线| 精品国产露脸精彩对白| 九九热最新地址| 丝袜熟女一区二区三区| 国内精品不卡在线| 亚洲色图清纯唯美| 日韩精品综合一本久道在线视频| 天海翼在线视频| 美国黄色一级视频| 久久精品国产亚洲a| 国产精品国产成人国产三级| 欧美日韩国产欧美日美国产精品| 无码人妻精品一区二区中文| 成人性生交大片免费看中文| 天堂一区二区在线免费观看| 国产农村妇女毛片精品久久麻豆| 欧美日韩在线直播| 国产一二三四视频| 久久久久无码国产精品一区李宗瑞| 经典三级一区二区| 亚洲综合视频在线观看| 久久综合给合久久狠狠狠97色69| 日本韩国欧美国产| 国产真人做爰视频免费| 久久无码人妻一区二区三区| 久久国产麻豆精品| 亚洲激情男女视频| 久久久午夜精品| 欧美日韩高清一区二区三区| 午夜精品久久久| 久久久久久久精| 欧美色网一区二区| 国产精品18在线| 久久久久成人精品无码中文字幕|