“MySQL 字符集:指定字符集和排序规则”的版本间差异
跳到导航
跳到搜索
(建立内容为“category:MySQL 字符集和排序规则有四个级别的默认设置:服务器,数据库,表 和 列。 “'''CHARACTER SET'''”用于指定字符…”的新页面) |
无编辑摘要 |
||
第13行: | 第13行: | ||
</syntaxhighlight>''' | </syntaxhighlight>''' | ||
== 排序规则命名约定 == | |||
MySQL 排序规则名称遵循以下约定: | |||
# 排序规则名称以与其关联的字符集的名称开头,通常后跟一个或多个后缀,以指示其他排序规则特征。例如,“utf8_general_ci”和“latin1_swedish_ci”分别是“utf8”和“latin1”字符集的排序规则。 | |||
#: binary字符集具有单个排序规则,也称为binary,没有后缀。 | |||
# 特定于语言的排序规则包括语言名称。例如,“utf8”字符集的“utf8_turkish_ci”和“utf8_hungarian_ci”使用土耳其语和匈牙利语规则分别对字符进行排序。 | |||
# 排序规则后缀指示排序规则是区分大小写,区分重音还是假名敏感(或其某种组合)还是二进制。下表显示了用于指示这些特性的后缀。 | |||
服务器字符集和排序规则 | 排序规则后缀的含义: | ||
{| class="wikitable" | |||
! Suffix !! Meaning | |||
|- | |||
| '''_ai''' || 重音:不敏感(Accent-sensitive) | |||
|- | |||
| '''_as''' || 重音:敏感(Accent-sensitive) | |||
|- | |||
| '''_ci''' || 大小写:不敏感(Case-insensitive) | |||
|- | |||
| '''_cs''' || 大小写:敏感(Case-sensitive) | |||
|- | |||
| '''_bin''' || 二进制(Binary) | |||
|} | |||
* 对于未指定重音符号敏感性的非二进制排序规则名称,它由区分大小写确定。如果排序规则名称不包含“_ai”或“_as”,则名称中的“_ci”表示“_ai”,名称中的“_cs”表示“_as”。 | |||
*: 例如,“latin1_general_ci”显式不区分大小写,并且隐含不区分重音,而“latin1_general_cs”显式区分大小写,并且隐含区分重音。 | |||
* 对于二进制字符集的二进制排序规则,比较基于数字字节值。对于非二进制字符集的“_bin”排序规则,比较基于数字字符代码值,该值不同于多字节字符的字节值。 | |||
* Unicode 字符集的排序规则名称可以包括版本号,以指示排序规则所基于的 Unicode 排序规则算法(UCA)的版本。名称中没有版本号的基于 UCA 的归类使用版本 4.0.0 UCA 配重键。 | |||
*: 例如: | |||
*: utf8_unicode_520_ci:基于 UCA 5.2.0 配重键(http://www.unicode.org/Public/UCA/5.2.0/allkeys.txt)。 | |||
*: utf8_unicode_ci(未命名版本):基于 UCA 4.0.0 重量键(http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt)。 | |||
* 对于 Unicode 字符集,“xxx_general_mysql500_ci”排序规则保留原始“xxx_general_ci”排序规则在 5.1.24 之前的顺序,并允许升级在 MySQL 5.1.24 之前创建的表(错误#27877)。 | |||
== 服务器字符集和排序规则 == | |||
数据库字符集和排序规则 | 数据库字符集和排序规则 |
2021年3月28日 (日) 00:45的版本
字符集和排序规则有四个级别的默认设置:服务器,数据库,表 和 列。
“CHARACTER SET”用于指定字符集的子句中。【 “CHARSET”可以用作“CHARACTER SET”的同义词】
字符集问题不仅影响数据存储,还影响 Client 端程序与 MySQL 服务器之间的通信。如果希望 Client 端程序使用与默认字符集不同的字符集与服务器通信,则需要指出哪个字符集。
- 例如,要使用 utf8 Unicode 字符集,请在连接到服务器后发出以下语句:
SET NAMES 'utf8';
排序规则命名约定
MySQL 排序规则名称遵循以下约定:
- 排序规则名称以与其关联的字符集的名称开头,通常后跟一个或多个后缀,以指示其他排序规则特征。例如,“utf8_general_ci”和“latin1_swedish_ci”分别是“utf8”和“latin1”字符集的排序规则。
- binary字符集具有单个排序规则,也称为binary,没有后缀。
- 特定于语言的排序规则包括语言名称。例如,“utf8”字符集的“utf8_turkish_ci”和“utf8_hungarian_ci”使用土耳其语和匈牙利语规则分别对字符进行排序。
- 排序规则后缀指示排序规则是区分大小写,区分重音还是假名敏感(或其某种组合)还是二进制。下表显示了用于指示这些特性的后缀。
排序规则后缀的含义:
Suffix | Meaning |
---|---|
_ai | 重音:不敏感(Accent-sensitive) |
_as | 重音:敏感(Accent-sensitive) |
_ci | 大小写:不敏感(Case-insensitive) |
_cs | 大小写:敏感(Case-sensitive) |
_bin | 二进制(Binary) |
- 对于未指定重音符号敏感性的非二进制排序规则名称,它由区分大小写确定。如果排序规则名称不包含“_ai”或“_as”,则名称中的“_ci”表示“_ai”,名称中的“_cs”表示“_as”。
- 例如,“latin1_general_ci”显式不区分大小写,并且隐含不区分重音,而“latin1_general_cs”显式区分大小写,并且隐含区分重音。
- 对于二进制字符集的二进制排序规则,比较基于数字字节值。对于非二进制字符集的“_bin”排序规则,比较基于数字字符代码值,该值不同于多字节字符的字节值。
- Unicode 字符集的排序规则名称可以包括版本号,以指示排序规则所基于的 Unicode 排序规则算法(UCA)的版本。名称中没有版本号的基于 UCA 的归类使用版本 4.0.0 UCA 配重键。
- 例如:
- utf8_unicode_520_ci:基于 UCA 5.2.0 配重键(http://www.unicode.org/Public/UCA/5.2.0/allkeys.txt)。
- utf8_unicode_ci(未命名版本):基于 UCA 4.0.0 重量键(http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt)。
- 对于 Unicode 字符集,“xxx_general_mysql500_ci”排序规则保留原始“xxx_general_ci”排序规则在 5.1.24 之前的顺序,并允许升级在 MySQL 5.1.24 之前创建的表(错误#27877)。
服务器字符集和排序规则
数据库字符集和排序规则
表字符集和排序规则
列字符集和排序规则
字符串常量字符集和排序规则
国家字符集
字符集简介
字符集和排序规则分配的示例
与其他 DBMS 的兼容性