mysql 全球化和本地化(字符集和校对的设置)
全球化和本地化
字符集为字母和符号的集合;
编码为某个字符集成员的内部表示;
校对为规定字符如何比较的指令。(也就是 字符比较如何比较大小)
校对在对用ORDER BY子句检索出来的数据排序时起重要的作用
使用何种字符集和校对的决定在服务器、数据库和表级进行。
显示所有可用的字符集以及每个字符集的描述和默认校对:
SHOW CHARACTER SET;
显示所有可用的校对,以及它们适用的字符集:
SHOW COLLATION;
通常系统管理在安装时定义一个默认的字符集和校对。
也可以在创建数据库时,指定默认的字符集和校对。
为了确定所用的字符集和校对,可以使用以下语句:
SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'collation%';
在创建数据库时,指定默认的字符集和校对:
创建表时,给表指定字符集和校对:
CREATE TABLE table_name(
...
)DEFAULT CHARACTER SET hebrew
COLLATE hebrew_general_ci;
# 指定一个字符集和一个校对顺序。
创建表时,给列指定字符集和校对:
CREATE TABLE table_name(
col_name1 VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_general_ci
...
)DEFAULT CHARACTER SET hebrew
COLLATE hebrew_general_ci;
# 指定一个字符集和一个校对顺序。
指定字符集和校对的规则:
如果指定CHARACTER SET和COLLATE两者,则使用这些值。
如果只指定CHARACTER SET,则使用此字符集及其默认的校对(如SHOW CHARACTER SET的结果中所示)。
如果既不指定CHARACTER SET,也不指定COLLATE,则使用数据库默认。
COLLATE子句,还可以用于ORDER BY,GROUP BY,HAVING,函数,别名等。
# 为了区分大小写的校对
SELECT * FROM table_name ORDER BY col_1, col_2 COLLATE Latin_general_cs;
如果绝对需要,串可以在字符集之间进行转换。为此,使用Cast()或Convert()函数。
本文介绍了MySQL中的全球化和本地化概念,重点讨论了字符集和校对的设置。字符集定义了字母和符号的集合,编码是字符的内部表示,而校对则规定字符比较的方式。在服务器、数据库和表级别可以设定不同的字符集和校对。MySQL提供了多种字符集和校对选项,用户可以通过`SHOW CHARACTER SET`和`SHOW COLLATION`查询。创建数据库和表时,可以指定默认字符集和校对,且有指定规则。校对在排序和比较中起关键作用。此外,`COLLATE`子句也可用于查询语句中实现特定的排序规则。转换字符集可以使用`Cast()`或`Convert()`函数。
278

被折叠的 条评论
为什么被折叠?



