avatar

一条在知识海洋的咸鱼

这个家伙很懒,啥也没有留下😋

  • 首页
  • Linux
  • OCJP
  • Java核心技术卷
  • J2EE相关标准
  • 深入理解Java虚拟机
  • NIO与SOcket编程技术指南
  • Java多线程编程核心技术
  • Redis开发与运维
  • Spring Cloud Alibaba 微服务原理与实践
  • DevOps
  • Docker
  • MySQL必知必会
  • AI自学路线
  • Spring Boot 编程思想(核心篇)
主页 第二十七章 全球化和本地化
文章

第二十七章 全球化和本地化

发表于 2021-07-6 更新于 2026-06- 10
作者 Administrator
9~12 分钟 阅读

MySQL处理不同字符集和语言的基础知识

  • 字符集和校对顺序
    • 校对的重要性
  • 使用字符集和校对顺序
    • 确定使用的字符集和校对
    • 给表指定字符集和校对
    • 给指定列设置字符集和校对
    • 对SELECT语句指定校对
    • SELECT的其他COLLATE子句

字符集和校对顺序

数据库表被用来存储和检索数据。
不同的语言和字符集需要以不同的方式存储和检索
MySQL需要适应不同的字符集(字母和字符),应应不同的排序和检索数据的方法

  • 字符集:字母和符号的集合
  • 编码:某个字符集成员的内部表示
  • 校对:规定字符如何比较的指令

校对的重要性

排序英文字母根据区分大小写排序的结果有所不同,其影响到排序ORDER BY和搜索WHERE等子句。如果使用不给予拉丁文的字符集将更为复杂

使用何种字符集和校对的决定在服务器、数据库和表级进行

使用字符集和校对顺序

MySQL支持众多的字符集

  • 字符集
SHOW CHARACTER SET;

显示所有可用的字符集以及每个字符集的描述和默认校对
image.png

  • 校对
SHOW COLLATION;

有的字符集不止一种校对,_cs表示区分大小写,_ci表示不区分大小写
image.png

确定使用的字符集和校对

SHOW VARIABLES LIKE "CHARACTER%";
SHOW VARIABLES LIKE "collation%";

image.png
image.png

给表指定字符集和校对

CREATE TABLE mytable (
	column1 INT,
column2 VARCHAR ( 10 )) DEFAULT CHARACTER 
SET hebrew COLLATE hebrew_general_ci;

创建一个包含两列的表,并且指定一个字符集和一个校对顺序
![image.png](/upload/2021/07/image-- a55c17912d6548e8a73ae94dfb488873.png)

  • CHARACTER SET和COLLATE指定了字符集和校对
    1.如果同时有CHARACTER SET、COLLATE则使用这些值
    2.如果只有CHARACTER SET则默认使用此字符集的校对
    3.如果都没有则使用数据库默认值

给指定列设置字符集和校对

除了表之外,还支持不同列设置不同的字符集和校对

CREATE TABLE mytable1 ( column1 INT, column2 VARCHAR ( 10 ), column3 VARCHAR ( 10 ) CHARACTER SET latin1 COLLATE latin1_general_ci ) DEFAULT CHARACTER 
SET hebrew COLLATE hebrew_general_ci;

其对整个表和特定的列都设置了不同的字符集和校对
image.png

对SELECT语句指定校对

与创建表时不同的校对顺序排序特定的SELECT语句,可以在SELECT语句自身中进行

SELECT
	* 
FROM
	customers 
ORDER BY
	cust_id,
	cust_city COLLATE latin1_general_cs;

SELECT的其他COLLATE子句

除了ORDER BY之外,还可用于ROUP BY、HAVING、聚集函数、别名等

MySQL必知必会
SQL
许可协议: 
分享

相关文章

7月 6, 2021

第二十九章 数据库维护

7月 6, 2021

第二十八章 安全管理

确保数据的安全和完整需要利用访问控制访问控制root账户不要使用root管理用户创建用户账号简单创建一个新用户账号使用GRANT或INSERT创建重命名用户账号删除用户账号设置访问权限访问控制用户需要对其数据具有适当的访问权,既不能过多,也不能过少,例如多数用户需要对表进行读写,少数用户需要创建和删

7月 6, 2021

第二十七章 全球化和本地化

MySQL处理不同字符集和语言的基础知识字符集和校对顺序校对的重要性使用字符集和校对顺序字符集和校对顺序数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索MySQL需要适应不同的字符集(字母和字符),应应不同的排序和检索数据的方法字符集:字母和符号的集合编码:某个字符集成员的

下一篇

第二十八章 安全管理

上一篇

第二十六章 管理事务处理

最近更新

  • 55 异常兜底:工具失败、非法输出、空检索与超时
  • 54 Agent Memory:短期记忆、用户上下文与摘要
  • 53 Human-in-the-loop:让关键动作暂停、确认与恢复
  • 52 工单 Tool:字段校验、创建结果与失败补偿
  • 51 订单 Tool:Mock、鉴权、状态解析与脱敏

热门标签

java基础 微服务 maven Spring Tomcat DDD Linux Linux基础 SQL基础 数据结构算法

目录

©2026 一条在知识海洋的咸鱼. 保留部分权利。

使用 Halo 主题 Chirpy