Mysql字符集和比较规则

文章详细阐述了MySQL中字符集和比较规则的概念,包括如何查看字符集和比较规则,以及它们在服务器级别、数据库级别、表级别和列级别上的设定和影响。特别提到,服务器和数据库级别的字符集和比较规则在创建时是只读的,而表和列级别则可修改。同时,文章提到了MySQL处理连接请求和返回结果时涉及的三个字符集变量及其相互转换的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符集和比较规则

 Mysql的同一种字符集可以拥有多种比较规则(用于比较字符串的大小)

查看字符集

 命令如下:

SHOW CHARACTER SET [LIKE ...];

查看比较规则

 命令如下

SHOW COLLATION [LIKE ...]

字符集和比较规则的级别

有四种

  • 服务器
  • 数据库
  • 标记别
  • 列级别

服务器级别的字符集和比较规则

两个系统变量

系统变量名描述
character_set_server服务器字符集
collation_server服务器级别的比较规则

数据库级别的比较规则和字符集

 特别注意的是,服务器级别的比较规则和字符集需要在创建时设定,并且是只读的

表级别

 表级别的是可以修改的,也可以在创建时指定

列级别

 同上
需要注意的是,修改字符集合,那么相应的比较规则改为相应默认的比较规则,反过来同是

Mysql处理连接请求和返回结果使用的字符集

变量character_set_client:用于解析客户端的请求
变量character_set_connection:将上面的client字符集转换成connection后再将connection转化成列使用的字符集
变量character_set_results将查询结果从具体的列转换成result指示的字符集
流程如下图
字符集转换流程
MYSQL一般将该三个字符集设置成一样的,并且提供了一条简单的语句

 SET NAMES  'utf8';

这条语句会将上文的三个变量设置成一致的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值