MySQL字符集和排序规则详解

查看数据库编码 windows下mysql5.7默认编码如下图 show variables like '%character%';(1)每个数据库客户端连接都有自己的字符集和排序规则属性,客户端发送的语句的字符集是由character_set_client决定,而与服务端交互时会根据character_set_connection和collation_connection两个参数将接收到的语句转化。...
MySQL字符集和排序规则详解
MySQL提供了多种字符集和排序规则选择,其中字符集设置和数据存储以及客户端与MySQL实例的交互相关,排序规则和字符串的对比规则相关。

(1)字符集的设置可以在MySQL实例、数据库、表、列四个级别

(2)MySQL设置字符集支持在InnoDB, MyISAM, Memory三个存储引擎

(3)查看当前MySQL支持的字符集的方式有两种,一种是通过查看information_schema.character_set系统表,一种是通过命令【 show character set; 】查看。

每个指定的字符集都会有一个或多个支持的排序规则,可以通过两种方式查看,一种是查看information_schema.collations表,另一种是通过【show collation】命令查看。

(1)查看utf8mb4字符集对应的排序规则有哪些。

show collation where charset ='utf8mb4';

(2)剖析排序规则

排序规则的命令通常是以对应的字符集的名字为开头,并以自己的特定属性结尾,比如排序规则utf8_general_ci和latin1_swedish_ci就分别是对应utf8和latin1字符集的排序规则。

• 当排序规则特指某种语言时,则中间的部分就为这种语言的名字,比如utf8_turkish_ci和utf8_hungarian_ci就代表UTF8字符集中的土耳其语和匈牙利语

• 排序规则名字的结尾字符代表是否大小写敏感,重音敏感以及是否是二进制的

A. 当仅指定了字符集而没有指定排序规则时,则会使用该字符集的默认排序规则

B. 当仅指定了排序规则而没有字符集时,则在该排序规则名称上含有的字符集会被使用

C. 当数据库创建时没有指定这两项,则使用实例级别的字符集和排序规则

更多C++后台开发技术点知识内容包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,音视频开发,Linux内核,TCP/IP,协程,DPDK多个高级知识点。

C/C++Linux服务器开发高级架构师/C++后台开发架构师免费学习地址

【文章福利】另外还整理一些C++后台开发架构师 相关学习资料,面试题,教学视频,以及学习路线图,免费分享有需要的可以点击领取

查看数据库编码

windows下mysql5.7默认编码如下图

show variables like '%character%';

(1)每个数据库客户端连接都有自己的字符集和排序规则属性,客户端发送的语句的字符集是由character_set_client决定,而与服务端交互时会根据character_set_connection和collation_connection两个参数将接收到的语句转化。当涉及到显示字符串的比较时,由collation_connection参数决定,而当比较的是字段里的字符串时则根据字段本身的排序规则决定

(2) character_set_result 参数决定了语句的执行结果以什么字符集返回给客户端

(3) 客户端可以很方便的调整字符集和排序规则,比如使用SET NAMES'charset_name' [COLLATE 'collation_name']表明后续的语句都以该字符集格式传送给服务端,而执行结果也以此字符集格式返回。

SET character_set_client = utf8mb4; SET character_set_results = utf8mb4; SET character_set_connection = utf8mb4;

MySQL5.7以后,推荐使用utf8mb4编码来代替utf8编码。

无论window下还是linux下的mysql安装完成后首先要做的就是修改编码,下面蓝色部分是需要配置的。修改完成后,重启mysql服务,查看编码。

原文链接:第六节:MySQL字符集和排序规则详解 - Yaopengfei - 博客园2024-10-19
mengvlog 阅读 12 次 更新于 2025-07-20 08:01:28 我来答关注问题0
  •  翡希信息咨询 一文理清 TiDB 与 MySQL 中的常用字符集及排序规则

    排序规则: 排序规则规定字符的排序顺序,依赖于特定的字符集。例如,utf8mb4_general_ci和gbk_chinese_ci分别是基于UTF8和GBK字符集的排序规则。 在TiDB和MySQL中,排序规则的命名通常包含字符集和排序方式的信息,如utf8mb4_bin表示二进制排序,utf8mb4_general_ci表示一般大小写不敏感排序。 TiDB从...

  •  翡希信息咨询 MySQL字符集和排序规则详解

    比较规则:当涉及到显示字符串的比较时,由collation_connection参数决定;而当比较的是字段里的字符串时,则根据字段本身的排序规则决定。 结果字符集:character_set_result参数决定了语句的执行结果以什么字符集返回给客户端。 调整方式:客户端可以很方便地调整字符集和排序规则,比如使用SET NAMES 'charse...

  •  文暄生活科普 一文理清 TiDB 与 MySQL 中的常用字符集及排序规则

    排序规则(Collation)规定字符的排序顺序,如utf8mb4_general_ci和gbk_chinese_ci,它们依赖于特定的字符集。在TiDB和MySQL中,字符集与排序规则的命名有特定含义,如utf8mb4_bin、utf8mb4_general_ci等,区分了字符编码和排序方式,如大小写敏感或不敏感,以及是否遵循特定的Unicode排序标准。在TiDB中...

  • 排序规则的命令通常是以对应的字符集的名字为开头,并以自己的特定属性结尾,比如排序规则utf8_general_ci和latin1_swedish_ci就分别是对应utf8和latin1字符集的排序规则。• 当排序规则特指某种语言时,则中间的部分就为这种语言的名字,比如utf8_turkish_ci和utf8_hungarian_ci就代表UTF8字符集...

  • MySQL 8.0 默认字符集从 latin1 改为 utf8mb4,它是一个真正4字节的UTF-8编码,支持所有Unicode字符,包括表情符号、特殊符号以及复杂文字。utf8mb4字符集主要应用于存储和处理需要大量非ASCII字符的场景,如国际化应用。比较规则方面,MySQL 8.0 中utf8mb4的默认规则是 utf8mb4_0900_ai_ci,...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部