mysql 全球化和本地化(字符集和校对的设置)

本文介绍了MySQL中的全球化和本地化概念,重点讨论了字符集和校对的设置。字符集定义了字母和符号的集合,编码是字符的内部表示,而校对则规定字符比较的方式。在服务器、数据库和表级别可以设定不同的字符集和校对。MySQL提供了多种字符集和校对选项,用户可以通过`SHOW CHARACTER SET`和`SHOW COLLATION`查询。创建数据库和表时,可以指定默认字符集和校对,且有指定规则。校对在排序和比较中起关键作用。此外,`COLLATE`子句也可用于查询语句中实现特定的排序规则。转换字符集可以使用`Cast()`或`Convert()`函数。

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()函数。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值