搜索
 找回密码
 立即注册
发新帖

mariadb教程[73] 全球化和本地化

时间:2020-3-21 18:13 0 614 | 复制链接 |

610

主题

610

帖子

0

积分

网站编辑

Rank: 8Rank: 8

积分
0
字符集为字母和符号的集合,编码为某个字符集成员的内部标识,校对为规定字符如何比较的指令。使用何种字符集和校对的决定在服务器、数据库和表级进行。使用字符集和校对顺序

查看所支持的字符集完整列表
show character set;
查看所支持校对的完整列表
show collation;
有的字符集具有不止一种校对。一次区分大小写(由_cs表示)一次不区分大小写(由_ci表示)
通常系统管理在安装时定义一个默认的字符集和校对。此外也可以在创建数据库时,指定默认的字符集和校对。为了确定所用的字符集和校对,可以使用以下语句
show variables like 'character%'
show variables like 'collation%'
实际上,字符集很少是服务器范围(甚至数据库范围)的设置。不同的表,甚至不同的列都可能需要不同的字符集,而且两者都可以在创建表时指定。
create table mytable
(
  col1 int,
  clo2 varchar(10)
) default character set hebrew
  collate hebrew_general_ci;
如果指定character set和collate,则使用这些值
如果只指定character set,则使用此字符集及其默认的校对(如show character set的结果中所示)
如果既不指定character set,也不指定collate,则使用数据库默认。
除了能指定字符集和校对的表范围外,mariadb还允许对每个列设置它们
create table mytable
(
  col1 int,
  clo2 varchar(10) character set latin1 collate latin1_general_ci
) default character set hebrew
  collate hebrew_general_ci;

校对在对用order by子句检索出来的数据排序时起重要的作用。如果你需要用与创建表时不同的校对顺序排序特定的select语句,可以在select语句自身中进行。
select * from customers order by lastname,firstname collate latin1_general_cs;
上面的select语句演示了在通常不区分大小写的表上进行区分大小写搜索的一种技术。当然反过来也是可以的。
除了这里看到的在order by子句中使用以外,collate还可以用于group by、having、聚集函数、别名等。
如果绝对需要,串可以在字符集之间进行转换。为此使用cast()或convert()函数。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 返回顶部