iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL字符集都有哪些
  • 669
分享到

MySQL字符集都有哪些

2024-04-02 19:04:59 669人浏览 薄情痞子
摘要

今天就跟大家聊聊有关Mysql字符集都有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 字符集基础先了解下mysql字符集都有哪些地方使用,

今天就跟大家聊聊有关Mysql字符集都有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1. 字符集基础

先了解下mysql字符集都有哪些地方使用,进入数据库VARIABLES参数一目了然:

mysql> SHOW VARIABLES  WHERE variable_name LIKE '%character%'  OR  variable_name  LIKE '%collation%'  ; +-------------------------------+--------------------------------------+ | Variable_name                 | Value                                | +-------------------------------+--------------------------------------+ | character_set_client          | utf8mb4                              | | character_set_connection      | utf8mb4                              | | character_set_database        | utf8mb4                              | | character_set_filesystem      | binary                               | | character_set_results         | utf8mb4                              | | character_set_server          | utf8mb4                              | | character_set_system          | utf8                                 | | character_sets_dir            | /opt/idc/mysql8.0.23/share/charsets/ | | collation_connection          | utf8mb4_bin                          | | collation_database            | utf8mb4_bin                          | | collation_server              | utf8mb4_bin                          | | default_collation_for_utf8mb4 | utf8mb4_0900_ai_ci                   | +-------------------------------+--------------------------------------+

从上面client,connection,database,results层层环节扣着,任何一个环节的字符集不兼容都会出现乱码问题。

MySQL8.0 utf8mb4 Unicode字符集一个新的通用排序归类,被命名为utf8mb4_0900_ai_ci。MySQL  8.0默认的是utf8mb4_0900_ai_ci,属于 utf8mb4_unicode_ci中的一种。

这些字段每个意义,代表着什么含义:

  • uft8mb4 表示用 UTF-8 编码方案,每个字符最多占4个字节。

  • utf8mb3也是Unicode字符集的UTF-8编码,每个字符使用一到三个字节。(utf8: utf8mb3的别名)

  • 0900 就是Unicode 校对算法版本。(Unicode归类算法是用于比较符合Unicode标准要求的两个Unicode字符串的方法)。

  • ai指的是口音不敏感。也就是说,排序时e,è,é,ê和ë之间没有区别,不区分重音。

  • ci表示不区分大小写。排序时p和P之间没有区别。

再了解一下一些场景下 utf8 和 utf8mb4 的问题点:

utf8编码最多支持3字节的数据,而emoji表情符, 偏生字是4个字节的utf8无法存储的,致辞延伸出utf8mb4字符集解决这个问题。

日常常用的字符集:

  • utf8mb4_bin:将字符串每个字符用二进制数据编译存储,区分大小写,而且可以存二进制的内

  • utf8mb4_general_ci:ci即case  insensitive,不区分大小写。没有实现Unicode排序规则,在遇到某些特殊语言或字符集,排序结果可能不一致。但在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。

utf8mb4_unicode_ci:是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。

2. 字符集配置

mysql字符集如何设置,更改操作:

1)my.cnf配置文件信息,建议初始化时就设置好。

[mysqld]

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

character-set-client-handshake = FALSE #此处是忽略客户端的字符集,使用服务器的设置

2)init_connect=‘SET NAMES utf8mb4’ #服务器为每个连接的客户端执行的字符串,对于一些超级管理源就不生效的

3)字符集变更,包含库,表,column的变更。都可以完全的拥有自己的字符集。

##更改DATABASE  ALTER DATABASE `db1` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci   ##更改TABLE  ALTER TABLE `t1` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci   ##更改column字段  ALTER TABLE `t1`  modify `name` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '昵称';

4)日常字符集检查工作:

SELECT b.SCHEMA_NAME, b.DEFAULT_CHARACTER_SET_NAME, b.DEFAULT_COLLATION_NAME ,a.TABLE_NAME, a.TABLE_COLLATION  FROM  infORMation_schema.SCHEMATA b   left join information_schema.TABLES   a  on  b.SCHEMA_NAME =a. TABLE_SCHEMA  WHERE  b.SCHEMA_NAME not in ('information_schema' ,'mysql','performance_schema', 'sys')  ORDER BY TABLE_SCHEMA,TABLE_NAME ;

通过多方便设置,更改操作,检查。字符集不再是隐藏问题。

3. 字符集对于数据库的影响

字符集对整个数据库影响面还是比较可观的。库更改 对于原先存在的表字段 都不影响 依次类推。所以数据库>表>字段 都可以单独设置字符集。

常见问题1:有索引 没有走 因为进行了 字符集隐式转换

MySQL字符集都有哪些

常见问题2:在尾随空格方面不同

字符串值(CHAR、VARCHAR和TEXT)的比较与其他排序规则在尾随空格方面不同。For example, ‘a’ and 'a ’  作为不同的字符串比较,而不是相同的字符串。

MySQL字符集都有哪些

对于字符集排序来说,字符串末尾的空格也有对应的处理。

mysql> SELECT COLLATION_NAME, PAD_ATTRIBUTE  FROM INFORMATION_SCHEMA.COLLATIONS   WHERE CHARACTER_SET_NAME = 'utf8mb4'; +----------------------------+---------------+ | COLLATION_NAME             | PAD_ATTRIBUTE | +----------------------------+---------------+ | utf8mb4_general_ci         | PAD SPACE     | | utf8mb4_bin                | PAD SPACE     | | utf8mb4_unicode_ci         | PAD SPACE     | | utf8mb4_icelandic_ci       | PAD SPACE     | | utf8mb4_latvian_ci         | PAD SPACE     | | ......... | utf8mb4_0900_ai_ci         | NO PAD        | | utf8mb4_de_pb_0900_ai_ci   | NO PAD        | | utf8mb4_0900_bin           | NO PAD        | +----------------------------+---------------+

注意:在选择使用utf8mb4_0900 字符集之后空格 就需要处理。

常见问题3:对于数据的大小写敏感

除了lower_case_table_names之外,怎样有效使用大小写字符集设置,采用ut8mb4_bin字符集 既可,查询和数据插入解决。

MySQL字符集都有哪些

常见问题4:表情符,偏生字

常见错误代码:1366 Incorrect string value: ‘\xF0\x9F\x99\x82’ for column ‘name’ at  row 2

指定Utf8mb4字符集,再配合character-set-client-handshake属性

MySQL字符集都有哪些

备注:对于jdbc来说没有utf8mb4这样的字符集说法。

看完上述内容,你们对MySQL字符集都有哪些有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL字符集都有哪些

本文链接: https://www.lsjlt.com/news/58849.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL字符集都有哪些
    今天就跟大家聊聊有关MySQL字符集都有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1. 字符集基础先了解下MySQL字符集都有哪些地方使用,...
    99+
    2024-04-02
  • MySQL字符集有哪些
    MySQL字符集有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 小谈MySQL字符集(转)...
    99+
    2024-04-02
  • MySQL数据库字符集有哪些
    这期内容当中小编将会给大家带来有关MySQL数据库字符集有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、字符集、字符序的概念与联系在数据的存储上,MySQL提供了...
    99+
    2024-04-02
  • mysql字符集校对规则有哪些
    这篇文章给大家介绍mysql字符集校对规则有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。目前mysql默认的校对规则除binary charset为binary外,都为ci,即大...
    99+
    2024-04-02
  • HTML的字符集有哪些
    本文小编为大家详细介绍“HTML的字符集有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML的字符集有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。HTML 字符集...
    99+
    2024-04-02
  • MySQL字段类型都有哪些
    本篇文章为大家展示了MySQL字段类型都有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.日期和时间数据类型 MySQL数据类型 含义 ...
    99+
    2024-04-02
  • MySQL中使用字符集会有哪些影响
    在MySQL中使用字符集会影响以下方面: 存储数据:字符集决定了存储数据时所使用的字符编码,不同字符集支持的字符范围不同,因此存...
    99+
    2024-04-02
  • VBS中的字符集有哪些
    这篇文章主要讲解了“VBS中的字符集有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VBS中的字符集有哪些”吧!代码字符代码字符代码字符代码字符0 32[空格]64@96`1...
    99+
    2023-06-08
  • 影响MySQL字符集选择的因素有哪些
    数据存储需求:根据具体数据类型和存储需求,选择适合的字符集,比如针对英文字符和数字较多的应用可选择较小的字符集,而对于需要支持多...
    99+
    2024-04-09
    mysql
  • Java字符串问题具体都有哪些
    Java字符串问题具体都有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。下面我为大家总结了10条Java开发者经常会提的关于Java字符串的问题,如果你也是Java初学者,...
    99+
    2023-06-17
  • java中操作字符串都有哪些类
    在java 中操作字符串有:1.String;2.StringBuffer;3.StringBuilder在java中操作字符串有:String、StringBuffer、StringBuilder,其中String声明的是不可变的对象,每...
    99+
    2024-04-02
  • Mysql字符集设置乱码的原因有哪些
    这篇文章主要介绍了Mysql字符集设置乱码的原因有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基本概念• 字符(Character)是...
    99+
    2024-04-02
  • ECMAScript中都有哪些操作符
    这篇文章主要讲解了“ECMAScript中都有哪些操作符”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ECMAScript中都有哪些操作符”吧!目录一元操作符布尔操作符乘性操作符加性操作符关...
    99+
    2023-06-20
  • linux系统中字符集知识有哪些
    这篇文章主要为大家展示了“linux系统中字符集知识有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux系统中字符集知识有哪些”这篇文章吧。解决方法:把linux的字符集改变一下。路径...
    99+
    2023-06-13
  • linux中字符集查看命令有哪些
    这篇文章给大家分享的是有关linux中字符集查看命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。字符集查看:1、echo命令:[root@rac etc]#&n...
    99+
    2024-04-02
  • MySQL中字符串函数有哪些
    小编给大家分享一下MySQL中字符串函数有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!字符串函数1、返回字符串 s 的第一个字符的 ASCII 码SELEC...
    99+
    2023-06-08
  • mysql中字符串类型有哪些
    mysql中字符串类型有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。说明char和varchar都用来保存MySQL中的短字符串。两者的主要区别在于存储方式的不同:c...
    99+
    2023-06-20
  • mysql默认字符集是哪个
    本篇内容介绍了“mysql默认字符集是哪个”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-05-25
    mysql
  • python集成开发环境都有哪些
    python集成开发环境:1.eclipse,Java开发的python集成开发环境;2.pycharm,功能强大的python编辑器;3.Sublime Text,最流行的编辑器;python集成开发环境有以下几种eclipseeclip...
    99+
    2024-04-02
  • MySQL常用字符串函数有哪些
    这篇文章主要讲解了“MySQL常用字符串函数有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL常用字符串函数有哪些”吧!CONCAT()CONCAT(str1,s...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作