mysql 字符集(character set)和排序规则(collation)

news2024/12/23 11:34:40

文章目录

  • 概念
  • 1、字符集
    • 1.1、举例
    • 1.2、常见字符集 utf8 和 utf8mb4 区别
    • 1.3、字符集 使用
  • 2、排序规则
    • 2.1、举例
    • 2.2、常见的排序规则 utf8mb4_bin 、utf8mb4_general_ci、utf8mb4_unicode_ci
    • 2.3、使用

概念

在 MySQL 中,字符集(character set)和排序规则(collation)是两个相关但不同的概念:

字符集(character set)定义了如何将字符存储到字节中。
排序规则(collation)定义了如何比较字符,以及在排序和搜索时如何处理字符。

1、字符集

1.1、举例

在这里插入图片描述

1.2、常见字符集 utf8 和 utf8mb4 区别

  • 字符支持范围:

utf8:仅支持最多3字节的UTF-8字符。这意味着它只能表示基本多语言平面(BMP)的字符,即 Unicode 范围内的 U+0000 至 U+FFFF 的字符。这种字符集无法表示一些扩展的 Unicode 字符(例如表情符号和某些东亚文字)。
utf8mb4:支持最多4字节的UTF-8字符。这意味着它可以表示所有的 Unicode 字符,包括基本多语言平面的字符以及补充平面字符(例如表情符号和历史文字)。

  • 存储需求:

utf8:每个字符最多需要3个字节。
utf8mb4:每个字符最多需要4个字节。因此,在存储相同数量的字符时,utf8mb4 可能比 utf8 占用更多的存储空间。

  • 兼容性:

utf8 和 utf8mb4 在表示基本多语言平面(BMP)字符时是兼容的,但在表示补充平面字符时,只有 utf8mb4 能正确处理这些字符。

  • 选择建议
    如果你的应用程序需要处理表情符号或者某些特定的Unicode字符(如东亚的历史文字),建议使用 utf8mb4。
    如果你只需要处理基本多语言平面的字符,utf8 也可以满足需求,但一般建议使用 utf8mb4 以确保更广泛的字符集支持和未来的兼容性。

1.3、字符集 使用

  • 定义表结构

DEFAULT CHARSET=utf8mb4

CREATE TABLE example (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

  • 在配置文件中定义

可以确保在新建数据库、表和列时默认使用 utf8mb4 字符集。

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

2、排序规则

2.1、举例

在这里插入图片描述

2.2、常见的排序规则 utf8mb4_bin 、utf8mb4_general_ci、utf8mb4_unicode_ci

简单说,需要支持大小写的就用 utf8mb4_bin

  • utf8mb4_general_ci:不区分大小写,比较速度较快,但支持的Unicode特性不如utf8mb4_unicode_ci。

  • utf8mb4_unicode_ci:不区分大小写,支持完整的Unicode排序规则,处理更为精确和全面。

  • utf8mb4_bin 的特点
    区分大小写:utf8mb4_bin 是区分大小写的,因为它是基于字符的二进制值进行比较。例如,‘a’ 和 ‘A’ 被认为是不同的字符。
    区分字符顺序:比较时严格按照每个字符的二进制编码值进行,utf8mb4_bin 会区分所有字符的顺序,包括大小写字母和其他符号。

  • 使用场景
    精确比较:当需要对字符串进行精确的、区分大小写的比较时,utf8mb4_bin 是理想的选择。例如,密码比较和需要区分大小写的标识符。
    存储敏感数据:存储对大小写敏感的数据时,比如用户名、产品代码等,可以使用 utf8mb4_bin 以确保数据的准确性。

2.3、使用

  • 在表结构定义时使用

COLLATE=utf8mb4_bin

CREATE TABLE example (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

  • 在进行查询时使用
SELECT * FROM example WHERE name = 'ExampleName' COLLATE utf8mb4_bin;

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

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

相关文章

STM32基础知识

一.STM32概述 第一款STM32单片机发布的时间为2007年6月11日。由意法半导体(ST)公司推出,是STM32系列中的首款产品,具体型号为STM32F1,它是一款基于Cortex-M内核的32位微控制器(MCU)。 STM32F1…

广东这家非标自动化公司居然2台工作站20个设计同时用?

在当今快速发展的制造业中,非标自动化公司凭借其独特的定制化服务,正在逐步改变着传统的生产方式。在日益复杂和高度专业化的非标自动化设计领域,图形工作站的重要性不言而喻。设计师们需要强大的计算能力和高效的运行环境来支持他们的创意工…

短视频文案提取神器怎么提取抖音视频文案!

很多编导以及视频内容创作者为了提高自己的工作效率还会使用视频转文字提取神器,我们都清楚短视频领域每个平台人群熟悉都有所不同,在分发内容的时候也会调整内容已符合平台属性。 短视频文案提取神器怎么提取抖音视频文案 短视频常见的平台有抖音、西瓜…

分享超级实用的3款AI工具,让工作效率轻松翻倍

Hey,职场小伙伴们!每天被堆积如山的工作压得喘不过气?加班成了日常,效率却不见提高?别急,今天就让我来给你们揭秘3款AI神器,它们将是你职场上的得力助手,让你的工作效率轻松翻倍&…

Web3 ETF的主要功能

Web3 ETF的主要功能可以概括为以下几点,Web3 ETF仍是一项新兴投资产品,其长期表现仍存在不确定性。投资者在投资Web3 ETF之前应仔细研究相关风险,并做好充分的风险评估。北京木奇移动技术有限公司,专业的软件外包开发公司&#xf…

4-google::protobuf命名空间下常用的C++ API----text_format.h

#include <google/protobuf/text_format.h> namespace google::protobuf 用于以人类可读的基于文本的格式打印和解析协议消息的工具类。 TextFormat类 这个类实现协议缓冲文本格式。 以文本格式打印和解析协议消息对于调试和人工编辑消息非常有用。 这个类实际上是一个只…

跟《经济学人》学英文:2024年06月01日这期 The side-effects of the TikTok tussle

The side-effects of the TikTok tussle tussle&#xff1a;美 [ˈtəsəl] 激烈扭打&#xff1b;争夺 注意发音 side-effects&#xff1a;副作用&#xff1b;&#xff08;side-effect的复数&#xff09; As the app’s future hangs in the balance, the ramifications of …

【车载开发系列】PWM与占空比

【车载开发系列】PWM与占空比 一. 基本概念 1&#xff09;PWM PWM全称Pulse Width Modulation&#xff1a;脉冲宽度调制&#xff08;简称脉宽调制&#xff0c;通俗的讲就是调节脉冲的宽度&#xff09;&#xff0c;是电子电力应用中非常重要的一种控制技术。 脉冲宽度调制&am…

【邀请函】相约CommunityOverCode Asia 2024,共探Flink、Paimon、Celeborn开源新境界!

CommunityOverCode是由Apache软件基金会&#xff08;ASF&#xff09;主办的一系列全球性会议&#xff0c;旨在促进开源技术的发展和社区参与。自1998年以来&#xff0c;ApacheCon一直是这一系列活动的核心&#xff0c;吸引了不同背景和技术层级的参与者&#xff0c;关注于“明天…

【启明智显分享】乐鑫HMI方案2.8寸触摸串口屏应用于太阳能控制器

前言 太阳能作为一种无尽的、可再生的能源&#xff0c;在现代社会的能源结构中占据着日益重要的地位。而在太阳能应用系统中&#xff0c;有一种设备是不可或缺的&#xff0c;那就是太阳能控制器。太阳能控制器在太阳能系统中起着至关重要的作用&#xff0c;它保证系统的安全和…

大型语言模型评估调查

原文链接&#xff1a;A Survey on Evaluation of Large Language Models | ACM Transactions on Intelligent Systems and Technology 本文从三个关键维度&#xff1a;评价什么、在哪里评价和如何评价&#xff0c;对这些 LLMs 评价方法进行了全面回顾。 首先&#xff0c;我们…

zigbee笔记:六、看门狗定时器(Watch Dog)

一、看门狗基础 1、看门狗功能&#xff1a; 由于单片机的工作常常会受到来自外界电磁场的干扰&#xff0c;造成各种寄存器和内存的数据混乱&#xff0c;会导致程序指针错误等&#xff0c;程序运行可能会陷入死循环。程序的正常运行被打断&#xff0c;由单片机控制的系统无法继…

Java springboot校园管理系统源码

Java springboot校园管理系统源码-014 下载地址&#xff1a;https://download.csdn.net/download/xiaohua1992/89364089 技术栈 运行环境&#xff1a;jdk8 tomcat9 mysql5.7 windows10 服务端技术&#xff1a;Spring Boot Mybatis VUE 使用说明 1.使用Navicati或者其它工…

相关技术 检测离型纸

网盘 https://pan.baidu.com/s/1W-k4hl9uhjAG98hqJG11ug?pwdcrpn 离型无纺布.pdf 离型纸剥离机构.pdf 离型纸处理装置及贴胶设备.pdf 离型纸收集机构.pdf 离型纸涂布装置.pdf 防伪印刷离型纸的制造工艺.pdf

14.【C语言】初识操作符 上

1.分类 01算术操作符 - * / % 即四则运算和% 注意&#xff1a; /介绍 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() {float a 9 / 2;printf("%f\n", a);printf("%f\n", 9 / 2.0); } 结果不同 9/24……1 9/2.04.5&…

servlet职称评审系统-计算机毕业设计源码00122

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

智能光伏开发都能用到什么软件和工具?

随着全球对可再生能源的日益重视和光伏技术的快速发展&#xff0c;智能光伏开发已成为推动能源转型的重要力量。在光伏项目的全生命周期中&#xff0c;从设计、建设到运营管理&#xff0c;各种软件和工具的应用发挥着至关重要的作用。 一、光伏系统设计软件 1、PVsyst PVsyst…

【数据库了解与学习】

1.下载所需版本安装包 1.1将所需文件压缩包以及安装包放在你选择的任意一盘&#xff0c;新建一个没有文字和空格的文件夹 1.2双击打开安装包&#xff0c;选择Custom自定义模式然后点击右下方的Next 1.4三连点击1&#xff0c;再点击箭头出现3&#xff0c;选中3出现4&#xff0c;…

景区智慧公厕,剩余厕位显示,公厕环境监测。

在当今科技飞速发展的时代&#xff0c;景区的服务设施也在不断升级和创新。其中&#xff0c;景区智慧公厕的出现无疑为游客带来了极大的便利。特别是剩余厕位显示和公厕环境监测这两大功能&#xff0c;更是显著提升了景区公厕的管理水平和游客的使用体验。 剩余厕位显示功能是景…

C盘扩容/扩大C盘的12个有效操作方法

对于许多计算机用户来说&#xff0c;C盘空间可能会成为一个问题&#xff0c;尤其是那些将计算机广泛用于工作、游戏和多媒体目的的用户。如果您发现C驱动器上的空间不足&#xff0c;则需要对其进行扩展以提高系统的整体性能。在这篇文章中&#xff0c;我们将探讨C盘扩展的12种操…