MYSQL字符集和校对规则

文章目录

  • MYSQL字符集
    • MYSQL默认字符集
    • MySQL常见字符集
  • MYSQL校对规则
  • 校对规则总结


MYSQL字符集

UTF(Unicode Tranformation Format)是Unicode字符集规范的其中一个编码方式。

各字符编码详解可参考:字符编码发展历史

MYSQL默认字符集

  • 5.7版本及之前:默认字符集为latin1(ISO-8859-1)
  • 8.0版本及之后:默认字符集为utf8mb4

MySQL常见字符集

字符集字符的字节数描述适用场景
ascii1最基本的字符集
只包含英文字母、数字和一些特殊字符
适用于只需要支持英文字母、数字和一些特殊字符的数据库应用
latin11较为简单的字符集
支持256个拉丁字符
适用于只需要支持基本拉丁字符集的数据库应用,如英文等
utf8mb3<=3较早的字符集
支持大部分常见的Unicode字符,但不包含所有的特殊字符和表情符号
适用于少数特殊字符和表情符号的数据库应用,对存储空间要求较低的情况。
utf8mb4<=4最常用的字符集
支持存储和处理大部分常见的Unicode字符,包括表情符号和特殊字符
适用于多语言环境,包括处理中文、日文、韩文等语言的数据库应用
utf162 or 4用于存储Unicode字符的字符集
每个字符使用2个或4个字节进行存储
适用于存储较大的字符集,特别是包含一些生僻字符的数据库应用
utf324用于存储Unicode字符的字符集
每个字符使用4个字节进行存储。
适用于存储较大的字符集,特别是对字符存储空间要求较高的情况

MYSQL校对规则

MySQL中的校对规则(Collation)决定了如何对比排序字符数据。校对规则是在数据库、表和列级别指定的。

校对规则命名含义:

命名包含英文含义描述
_ciCase-Insensitive不区分大小写。即比较时忽略字符的大小写差异,‘a’ 和 ‘A’ 被认为是相同字符。
_csCase-Sensitive区分大小写。即比较时考虑字符的大小写,‘a’ 和 ‘A’ 被认为是不同字符。
_binBinary二进制排序。对字符进行字节级别的比较,严格区分大小写和字符的二进制表示。
_aiAccent-Insensitive不区分重音符号。即比较时忽略字符的重音符号差异,é 和 e 被认为是相同字符。
_asAccent-Sensitive区分重音符号。即比较时考虑字符的重音符号,é 和 e 被认为是不同字符。
_generalGeneral通用排序。使用简单的规则进行排序,通常适用于多种语言,但可能不完全符合所有语言的排序规范。
_unicodeUnicodeUnicode 排序。遵循 Unicode 标准进行字符比较,适合多语言环境,提供语言学准确的排序。

常见校对规则:

字符集校对规则默认描述
utf8mb3utf8_general_ci一种通用排序规则,不严格遵循 Unicode 排序标准,忽略大小写和重音符号。适用于大多数语言,但可能导致某些语言的排序不准确。
utf8mb3utf8_unicode_ci遵循 Unicode 排序标准,能更准确地处理不同语言的字符排序,区分大小写,但忽略重音符号。
utf8mb3utf8_bin基于字节比较的排序规则,区分大小写和字符的二进制表示,比较严格。适用于需要精确字符比较的场景。
utf8mb4utf8mb4_general_ci类似于 utf8_general_ci,但支持更多的字符,包括 Emoji 和其他四字节字符。排序规则较为宽松,忽略大小写和重音符号。
utf8mb4utf8mb4_unicode_ci类似于 utf8_unicode_ci,遵循 Unicode 排序标准,并支持四字节字符。适用于多语言环境中的准确排序。
utf8mb4utf8mb4_bin基于字节比较的排序规则,支持更多的字符,并严格区分大小写和字符的二进制表示。适用于需要精确字符比较的场景。

校对规则总结

MySQL 校对规则的作用主要体现在以下几个方面:

  • 排序和比较字符:不同的校对规则决定了字符如何排序和比较,影响查询结果。
  • 大小写和重音符号的处理:决定字符比较时是否考虑大小写和重音符号。
  • 支持多语言和特殊字符:选择合适的校对规则可以支持多语言环境和特殊字符(如 emoji)的正确处理。
  • 性能优化:选择适当的校对规则有助于提升性能,尤其是在大规模数据比较和排序时。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/63370.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8S,StatefulSet

有状态应用 Deployment实际上并不足以覆盖所有的应用编排问题&#xff1f; 分布式应用&#xff0c;它的多个实例之间&#xff0c;往往有依赖关系&#xff0c;比如&#xff1a;主从关系、主备关系。 还有就是数据存储类应用&#xff0c;它的多个实例&#xff0c;往往都会在本地…

子类有多个父类的情况下Super不支持指定父类来调用方法

1、Super使用方法 super()函数在Python中用于调用父类的方法。它返回一个代理对象&#xff0c;可以通过该对象调用父类的方法。 要使用super()方法&#xff0c;需要在子类的方法中调用super()&#xff0c;并指定子类本身以及方法的名称。这样就可以在子类中调用父类的方法。 …

Mac电脑如何解压rar压缩包

group 868373192 second group 277356808 在 macOS 上解压 RAR 文件&#xff0c;你可以使用以下几种方法&#xff1a; 方法 1: 使用 The Unarchiver 下载并安装 The Unarchiver: 你可以从 Mac App Store 下载 The Unarchiver。 解压 RAR 文件: 找到你想要解压的 RAR 文件。 …

《深入浅出HTTPS》读书笔记(16):消息验证码算法分类

MAC算法有两种形式&#xff0c;分别是CBC-MAC算法和HMAC算法。 CBC-MAC算法从块密码算法的CBC分组模式演变而来&#xff0c;简单地说就是最后一个密文分组的值就是MAC值。 HMAC&#xff08;Hash-based Message Authentication Code&#xff09;算法使用Hash算法作为加密基元&am…

又一个ansible例子

这个例子有点复杂&#xff0c;他在被控端上采集CPU 内存和磁盘利用率&#xff0c;并且以模板的形式保存在被控端&#xff0c;最后再把这个结果文件从被控端取回来。综合用到了shell、register、template和fetch4个模块 --- - name: get cpu mem and disk hosts: all tasks…

使用国内镜像源加速Qt“更新/安装”的方法

QT更新/安装时&#xff0c;国外源下载很慢&#xff0c;国内镜像源也因网络环境的不同而速度各异&#xff0c;下文给出国内镜像源的配置方法。 一、命令行 1、切换对应目录&#xff0c;更新器默认目录是 C:\Qt 2、文件名镜像源 安装示例&#xff1a; .\qt-unified-windows-x…

包管理器npm, cnpm, yarn 和 pnpm 的命令

npm (Node Package Manager) 安装与更新 npm install 或 npm i&#xff1a; 安装项目依赖&#xff1a;根据 package.json 文件安装所有列出的依赖。参数&#xff1a; -S, --save&#xff1a;保存到 dependencies&#xff08;默认行为&#xff09;。-D, --save-dev&#xff1a;…

python中权重剪枝,低秩分解,量化技术 代码

目录 python中权重剪枝,低秩分解,量化技术 代码 权重剪枝 低秩分解 scipy 量化技术 python中权重剪枝,低秩分解,量化技术 代码 权重剪枝 权重剪枝可以通过PyTorch的torch.nn.utils.prune模块实现。以下是一个简单的例子: import torch import torch.nn as nn impor…

如何让Google快速收录你的页面?

要让Google更快地收录你的网站内容&#xff0c;首先需要理解“爬虫”这个概念。Google的爬虫是帮助它发现和评估网站内容质量的工具&#xff0c;如果你的页面质量高且更新频率稳定&#xff0c;那么Google爬虫更可能频繁光顾。通常情况下&#xff0c;通过Google Search Console&…

使用 Flutter 进行移动应用开发:深入探索

文章目录 前言一、介绍二、安装 Flutter 环境三、Flutter 应用结构与基础组件四、状态管理策略五、高级主题结语 前言 随着移动技术的迅猛发展&#xff0c;跨平台开发的需求日益增长。开发者们一直在寻找一种既能保证应用性能又能减少开发成本和时间的技术方案。Flutter 应运而…

qtcanpool 知 10:包管理雏形

文章目录 前言痛点转机雏形实践后语 前言 曾听闻&#xff1a;C/Qt 没有包管理器&#xff0c;开发起来太不方便。这是一个有过 node.js 开发经验的人对 Qt 的吐槽。 确实&#xff0c;像 python、golang、node.js 这些编程语言都有包管理器&#xff0c;给用户带来了极佳的开发体…

Python 浏览器自动化新利器:DrissionPage,让网页操作更简单!

Python 浏览器自动化新利器&#xff1a;DrissionPage&#xff0c;让网页操作更简单&#xff01; 文章目录 Python 浏览器自动化新利器&#xff1a;DrissionPage&#xff0c;让网页操作更简单&#xff01;&#x1f680; 引言&#x1f31f; DrissionPage简介&#x1f6e0;️ 三大…

网络安全知识:网络安全网格架构

在数字化转型的主导下&#xff0c;大多数组织利用多云或混合环境&#xff0c;包括本地基础设施、云服务和应用程序以及第三方实体&#xff0c;以及在网络中运行的用户和设备身份。在这种情况下&#xff0c;保护组织资产免受威胁涉及实现一个统一的框架&#xff0c;该框架根据组…

CEEMDAN-CPO-VMD二次分解(CEEMDAN+冠豪猪优化算法CPO优化VMD)

CEEMDAN-CPO-VMD二次分解&#xff08;CEEMDAN冠豪猪优化算法CPO优化VMD&#xff09; 目录 CEEMDAN-CPO-VMD二次分解&#xff08;CEEMDAN冠豪猪优化算法CPO优化VMD&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 首先运用CEEMDAN对数据进行一次分解&#xff…

Ubuntu 22.04安装Nessus(离线激活模式)

Ubuntu 22.04安装Nessus 一、 Nessus 简介二、Nessus下载安装三、激活Nessus四、创建一个基础扫描五、 破解Nessus只能扫描16个地址的限制六、更新插件 一、 Nessus 简介 Nessus 官网&#xff1a; https://www.tenable.com/ Nessus号称世界上最流行的扫描程序&#xff0c;Nessu…

Ubuntu22.04深度学习环境安装【显卡驱动安装】

前言 使用Windows配置环境失败&#xff0c;其中有一个包只有Linux版本&#xff0c;Windows版本的只有python3.10的&#xff0c;所以直接选用Linux来配置环境&#xff0c;显卡安装比较麻烦&#xff0c;单独出一期。 显卡驱动安装 方法一&#xff1a;在线安装&#xff08;操作…

简单的动态带特殊符号敏感词校验

简单的动态带特殊符号敏感词校验 敏感词之前进行了简单了解&#xff0c;使用结巴分词自带词库可以实现&#xff0c;具体参考我的如下博文 敏感词校验 此次在此基础进行了部分优化&#xff0c;优化过程本人简单记录一下&#xff0c;具体优化改造步骤如下所示 1.需求 我们公司…

后端技术进阶知识总结

前端开发、后端开发、AI算法与应用等技术进阶知识总结 前言1.前端开发2.后端开发3.AI算法3.1 Studio级别的AI工具使用 前言 本文不记录基础性问题和详细解决方案。只记录key idea。 1.前端开发 2.后端开发 依赖注入&#xff08;Dependency Injection&#xff0c;简称DI&…

TCP客户端服务器端通信(线程池版)

1、什么是监听套接字&#xff0c;和UDP相比&#xff0c;TCP为什么文件描述符变多了&#xff1f; 在网络编程中&#xff0c;TCP和UDP是两种常见的传输协议&#xff0c;它们之间最大的不同之一在于连接的管理方式。为了更好地理解这个区别&#xff0c;我们可以用一个生动的比喻来…

FPGA:如何编写优秀的技术文档

编写一份优秀的FPGA项目技术文档确实是一项挑战&#xff0c;尤其是在需要同时传达技术深度和可读性的情况下。以下是我在FPGA设计领域积累的一些经验和方法&#xff0c;希望能为你的技术文档编写提供一些指导&#xff1a; 1. 明确文档的目的和目标受众 目的&#xff1a;确定文…