电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

mysql字符集相關總結

瀏覽:64日期:2023-10-05 10:33:58

這邊筆記主要記錄一下對mysql字符集相關知識的學習

字符集

一般我們使用如下語句創建一張表,創建表的時候指定了charset為utf8編碼。

CREATE TABLE `test` ( `c1` int UNSIGNED NOT NULL AUTO_INCREMENT, `c2` varchar(255), `c3` char(11), `c4` varchar(255), PRIMARY KEY (`c1`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

但其實mysql也支持除了utf8之外的其他字符集,可以使用命令 show charset 查看當前mysql支持的所有字符集。

例如下圖就是我的mysql支持的所有字符集。

mysql字符集相關總結

可以從上圖中看到,第四列表示該字符集最大長度。我們建表時常用的 utf8 在mysql里面實際最大長度是 3 個字符。一般認知中utf8是用1~4個字符來表示具體的內容的,但mysql里面的 utf8 實際是 utf8mb3 的別名,正宗的的最大用4個字符表示的在mysql中是 utf8mb4 。

注意:

utf8mb4utf8mb4比較規則

在上面那張圖中,第三列 Default collation 就是這些字符集默認的比較規則。例如acsii字符集的默認比較規則是 ascii_general_ci ,utf8字符集的默認比較規則是 utf8_general_ci 。

其實每個字符集有很多種比較規則,例如我們看一下acsii字符集有哪些比較規則,如下圖所示

mysql> show collation like ’ascii%’;+------------------+---------+----+---------+----------+---------+| Collation | Charset | Id | Default | Compiled | Sortlen |+------------------+---------+----+---------+----------+---------+| ascii_general_ci | ascii | 11 | Yes | | 0 || ascii_bin | ascii | 65 | | | 0 |+------------------+---------+----+---------+----------+---------+

ascii_general_ci 表示是一種通用的比較,其中 _ci 表示是不區分大小寫(case insensitive)。(反之 _cs 就表示大小寫敏感)

ascii_bin 表示是二進制比較

再看一下utf8、utf8mb4字符集有哪些比較規則,如下圖所示

mysql> show collation like ’utf8%’;+--------------------------+---------+-----+---------+----------+---------+| Collation | Charset | Id | Default | Compiled | Sortlen |+--------------------------+---------+-----+---------+----------+---------+| utf8_general_ci | utf8 | 33 | Yes | Yes | 1 || utf8_bin | utf8 | 83 | | Yes | 1 || utf8_unicode_ci | utf8 | 192 | | Yes | 8 || utf8_icelandic_ci | utf8 | 193 | | Yes | 8 || utf8_latvian_ci | utf8 | 194 | | Yes | 8 || utf8_romanian_ci | utf8 | 195 | | Yes | 8 || utf8_slovenian_ci | utf8 | 196 | | Yes | 8 || utf8_polish_ci | utf8 | 197 | | Yes | 8 || utf8_estonian_ci | utf8 | 198 | | Yes | 8 || utf8_spanish_ci | utf8 | 199 | | Yes | 8 || utf8_swedish_ci | utf8 | 200 | | Yes | 8 || utf8_turkish_ci | utf8 | 201 | | Yes | 8 || utf8_czech_ci | utf8 | 202 | | Yes | 8 || utf8_danish_ci | utf8 | 203 | | Yes | 8 || utf8_lithuanian_ci | utf8 | 204 | | Yes | 8 || utf8_slovak_ci | utf8 | 205 | | Yes | 8 || utf8_spanish2_ci | utf8 | 206 | | Yes | 8 || utf8_roman_ci | utf8 | 207 | | Yes | 8 || utf8_persian_ci | utf8 | 208 | | Yes | 8 || utf8_esperanto_ci | utf8 | 209 | | Yes | 8 || utf8_hungarian_ci | utf8 | 210 | | Yes | 8 || utf8_sinhala_ci | utf8 | 211 | | Yes | 8 || utf8_german2_ci | utf8 | 212 | | Yes | 8 || utf8_croatian_ci | utf8 | 213 | | Yes | 8 || utf8_unicode_520_ci | utf8 | 214 | | Yes | 8 || utf8_vietnamese_ci | utf8 | 215 | | Yes | 8 || utf8_general_mysql500_ci | utf8 | 223 | | Yes | 1 || utf8mb4_general_ci | utf8mb4 | 45 | Yes | Yes | 1 || utf8mb4_bin | utf8mb4 | 46 | | Yes | 1 || utf8mb4_unicode_ci | utf8mb4 | 224 | | Yes | 8 || utf8mb4_icelandic_ci | utf8mb4 | 225 | | Yes | 8 || utf8mb4_latvian_ci | utf8mb4 | 226 | | Yes | 8 || utf8mb4_romanian_ci | utf8mb4 | 227 | | Yes | 8 || utf8mb4_slovenian_ci | utf8mb4 | 228 | | Yes | 8 || utf8mb4_polish_ci | utf8mb4 | 229 | | Yes | 8 || utf8mb4_estonian_ci | utf8mb4 | 230 | | Yes | 8 || utf8mb4_spanish_ci | utf8mb4 | 231 | | Yes | 8 || utf8mb4_swedish_ci | utf8mb4 | 232 | | Yes | 8 || utf8mb4_turkish_ci | utf8mb4 | 233 | | Yes | 8 || utf8mb4_czech_ci | utf8mb4 | 234 | | Yes | 8 || utf8mb4_danish_ci | utf8mb4 | 235 | | Yes | 8 || utf8mb4_lithuanian_ci | utf8mb4 | 236 | | Yes | 8 || utf8mb4_slovak_ci | utf8mb4 | 237 | | Yes | 8 || utf8mb4_spanish2_ci | utf8mb4 | 238 | | Yes | 8 || utf8mb4_roman_ci | utf8mb4 | 239 | | Yes | 8 || utf8mb4_persian_ci | utf8mb4 | 240 | | Yes | 8 || utf8mb4_esperanto_ci | utf8mb4 | 241 | | Yes | 8 || utf8mb4_hungarian_ci | utf8mb4 | 242 | | Yes | 8 || utf8mb4_sinhala_ci | utf8mb4 | 243 | | Yes | 8 || utf8mb4_german2_ci | utf8mb4 | 244 | | Yes | 8 || utf8mb4_croatian_ci | utf8mb4 | 245 | | Yes | 8 || utf8mb4_unicode_520_ci | utf8mb4 | 246 | | Yes | 8 || utf8mb4_vietnamese_ci | utf8mb4 | 247 | | Yes | 8 |+--------------------------+---------+-----+---------+----------+---------+

使用不同的比較規則對數據進行比較,結果可能是不一樣的。

字符集和比較規則是對應的,不管是只修改字符集還是只修改比較規則,另一方都會相應地自動變化。

四個級別的字符集和比較規則

上文提到了字符集和比較規則,實際上在mysql里面有不同級別的字符集和比較規則:

服務器級別 數據庫級別 表級別 列級別

服務器級別的字符集可以看參數 character_set_server ,服務器級別的比較規則可以看參數 collation_server

mysql> show variables like ’character_set_server’;+----------------------+-------+| Variable_name | Value |+----------------------+-------+| character_set_server | utf8 |+----------------------+-------+1 row in set (0.00 sec)mysql> show variables like ’collation_server’;+------------------+-----------------+| Variable_name | Value |+------------------+-----------------+| collation_server | utf8_general_ci |+------------------+-----------------+1 row in set (0.00 sec)

如果要查看數據庫級別的字符集和比較規則,那么可以先 use xxxdb 切換到具體的數據庫,然后執行 show variables like ’character_set_database’ 和 show variables like ’collation_database’ 來查看該數據庫的字符集和比較規則。

Database changedmysql> show variables like ’character_set_database’;+------------------------+-------+| Variable_name | Value |+------------------------+-------+| character_set_database | utf8 |+------------------------+-------+1 row in set (0.00 sec)mysql> show variables like ’collation_database’;+--------------------+-----------------+| Variable_name | Value |+--------------------+-----------------+| collation_database | utf8_general_ci |+--------------------+-----------------+1 row in set (0.00 sec)

如果要查看某個表的字符集和比較規則,或者表中的某個列的字符集和比較規則,那么可以使用 show create table xxxtb 來查看具體的建表語句,里面就有使用的字符集和比較規則。

如果創建數據庫的時候沒有指定字符集和比較規則,則會使用服務器級別的字符集和比較規則作為數據庫的字符集和比較規則。如果創建和修改表的語句中沒有指明字符集和比較規則,將使用該表所在數據庫的字符集和比較規則作為該表的字符集和比較規則

三個系統變量

mysql服務器可以對應多個客戶端,而這些客戶端的編碼方式可能不同,但存在數據庫里的數據的字符集是一定的,mysql就要針對不同的客戶端進行編碼轉換處理,然后返回結果給客戶端。

在mysql里面,有三個 SESSION級別 的系統變量,可以進行上述操作:

character_set_client : 服務器解碼客戶端請求時使用的字符集 character_set_connection : 服務器處理請求時會把請求字符串從character_set_client轉為character_set_connection character_set_results : 服務器向客戶端返回數據時使用的字符集

mysql服務器會為每個客戶端都維護一份session級別的這三個變量。

不過在實際生產環境中,為了避免麻煩,公司一般都會有規范規定客戶端默認都使用utf8字符集。

以上就是mysql字符集相關總結的詳細內容,更多關于mysql字符集的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 涿州网站建设_网站设计_网站制作_做网站_固安良言多米网络公司 | 最新范文网_实用的精品范文美文网 | 湖南长沙商标注册专利申请,长沙公司注册代理记账首选美创! | 河南砖机首页-全自动液压免烧砖机,小型砌块水泥砖机厂家[十年老厂] | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | 流量检测仪-气密性检测装置-密封性试验仪-东莞市奥图自动化科技有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 衬氟旋塞阀-卡套旋塞阀-中升阀门首页 | 钢格板_钢格栅_格栅板_钢格栅板 - 安平县鑫拓钢格栅板厂家 | 钢结构厂房造价_钢结构厂房预算_轻钢结构厂房_山东三维钢结构公司 | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 光泽度计_测量显微镜_苏州压力仪_苏州扭力板手维修-苏州日升精密仪器有限公司 | 精密线材测试仪-电线电缆检测仪-苏州欣硕电子科技有限公司 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | 818手游网_提供当下热门APP手游_最新手机游戏下载 | MOOG伺服阀维修,ATOS比例流量阀维修,伺服阀维修-上海纽顿液压设备有限公司 | 政府园区专业委托招商平台_助力企业选址项目快速落地_东方龙商务集团 | 云南成考网_云南成人高考报名网| 复合肥,化肥厂,复合肥批发,化肥代理,复合肥品牌-红四方 | 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 坏男孩影院-提供最新电影_动漫_综艺_电视剧_迅雷免费电影最新观看 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 广州办公室设计,办公室装修,写字楼设计,办公室装修公司_德科 | 无压烧结银_有压烧结银_导电银胶_导电油墨_导电胶-善仁(浙江)新材料 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 东莞压铸厂_精密压铸_锌合金压铸_铝合金压铸_压铸件加工_东莞祥宇金属制品 | 软文世界-软文推广-软文营销-新闻稿发布-一站式软文自助发稿平台 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | 焊接减速机箱体,减速机箱体加工-淄博博山泽坤机械厂 | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 对夹式止回阀_对夹式蝶形止回阀_对夹式软密封止回阀_超薄型止回阀_不锈钢底阀-温州上炬阀门科技有限公司 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 |