MySQL必知必会-第27章 全球化和本地化(字符集和校对)

全球化和本地化

1.重要术语

1)字符集:字母和符号的集合;
2)编码:字符的内部表示;
3)校对:规定字符如何比较的指令;

2.字符集和校对可以在哪些等级设置

1)列级、表级、数据库级、服务器级;
2)字符集很少是在数据库级和服务器级指定的,因为不同的表、不同的列都可能需要不同的字符集;

3.使用字符集和校对顺序
3.1 一些常用的语句
-- 1. 查看MySLQ支持的所有字符集的完整列表
--    以及每个字符集对应的【描述】和【默认的校对】
show character set;
-- 2. 查看MySQL支持的校对以及它们适用的字符集
--    一种字符集不止一种校对
--    以_cs结尾的校对区分大小写, 以_ci结尾的校对不区分大小写
show collation;
-- 3. 查看当前使用的字符集和校对
show variables like 'character%';
show variables like 'collation%';
3.2 创建表的时候指定字符集和校对
-- 基本语法
CREATE TABLE 表名(
	列名1 列类型1 其他要求,
	列名2 列类型2 ... character set latin1 collate latin1_general_ci,
	...
)default character set hebrew
collate hebrew_general_ci;

【说明】
1)这里分别在表级和列级指定了character set 和 collation,要注意指定collation的时候使用的是collate关键字;
2)创建表的时候:
a.如果指定character set 和 collate,则使用这些值;
b.如果只指定了character set,则使用该字符集及其默认的校对;
c.如果都没指定,则使用数据库默认;

3.3 select的collate子句

a.在order by子句中指定collate

-- 在排序的时候,使用于建表时不同的校对顺序进行排序
select * from 表名
order by 列名1,列名2,..
collate 校对(如 latin1_general_cs);

【说明】
这个例子演示了在通常不区分大写的表上区分大小写搜索的一种技术。
b.collate还可以用于
1)group by子句;
2)having子句;
3)聚合函数;
4)别名等。

3.4 cast()或convert()函数

可以使用cast()或者convert()函数使字符串在不同字符集之间进行转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值