字符集和比较规则

1. 字符集

#1.1 utf8 与 utf8mb4

#utf8字符集表示一个字符需要使用1~4个字节,但是我们常用的一些字符使用1~3个字节就可以表示了。
#而字符集表示一个字符所用的最大字节长度,在某些方面会影响系统的存储和性能,所以设计MySQL的设计者
#定义了两个概念:
    #utf8mb3:阉割过的utf8字符集,只使用1~3个字节表示字符。
    #utf8mb4:正宗的utf8字符集,使用1~4个字节表示字符。
    
#在MySQL中utf8是utf8mb3的别名,所以之后在MySQL中提到的utf8就意味着使用1~3个字节来表示一个字符。
#如果哦使用4个字节编码一个字符的情况,比如存储一些:emoji表情,那就使用utf8mb4。

  #通过如下指令可以查看MySQL支持的字符集:
  #SHOW CHARSET;
  #或
  #SHOW CHARACTER SET;

2. 比较规则

#2. 比较规则
    #例如:排序就会用到规则,表字段值有:tom tim 这样的数据,排序操作,会根据什么规则来排序,
    #这里的规则就是比较规则,可以这样理解一下。
    
    #MySQL版本一共支持41中字符集,其中Default collation列表示这种字符集中一种默认的比较规则,里面包含
    #着该比较规则主要作用于那种语音,比如:utf8_polish_ci表示以波兰语的规则比较,
    #utf8_spanish_ci是以西班牙语的规则比较,utf8_general_ci是一种通过的比较规则。

  #查看utf8相关的比较规则
  SHOW COLLATION LIKE 'utf8%';

  #查看服务器的字符集和比较规则
  SHOW VARIABLES LIKE '%_server';

  #查看数据库的字符集和比较规则
  SHOW VARIABLES LIKE '_database';

  #查看具体数据库的字符集
  SHOW CREATE DATABASE dbtest1;

  #修改具体数据库的字符集
  ALTER DATABASE dbtest1 DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

3. 请求到响应过程中字符集的变化

-----------

posted @ 2024-11-11 15:40  字节虫  阅读(15)  评论(0)    收藏  举报