MySQL必知必会-23MySQL全球化和本地化
来源:互联网 发布:数据库中通配符! 编辑:程序博客网 时间:2024/06/05 06:52
字符集:为字母和符号的集合
编码:为某个字符集成员内部表示(数字代码表示)
校对:为规定字符如何比较的指令
校对对区分大小写和排序有着非常重要的作用。
使用何种字符集和校对的决定在服务器、数据库和表级进行。
使用字符集和校对顺序
查看所支持的字符集完整列表:
SHOW CHARACTER SET;
这条语句显示所有可用的字符集以及每个字符集的描述和默认校对。
SHOW COLLATION;
显示所有可用的校对,以及它们适用的字符集。可以看到有的字符集具有不止一种校对。
而且许多校对出现两次,一次区分大小写(由_cs表示),一次不区分大小写(由_ci表示)
通常系统管理在安装时定义一个默认的字符集和校对。此外,也可以在创建数据库时,指定默认的字符集和校对。
为了确定所用的字符集和校对,可以使用以下语句:
SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'collation%';
实际上,字符集很少是服务器范围(甚至数据库范围)的设置。不同的表,甚至不同的列都可能需要不同的字符集,而且两者都可以在创建表时指定。
CREATE TABLE mytable (
column1 INT NOT NULL AUTO_INCREMENT,
column2 VARCHAR (10) NOT NULL,
PRIMARY KEY (column1)
) DEFAULT CHARACTER
SET hebrew COLLATE hebrew_general_ci;
MySQL如下确定使用什么样的字符集和校对
如果指定CHARACTER SET和COLLATE两者。一般,MySQL如下确定使用什么样的字符集和校对。
如果指定CHARACTER SET和COLLATE两者,则使用这些值。
如果只指定CHARACTER SET,则使用此字符集及默认的校对(如SHOW CHARACTER SET的结果中所示)
如果即不指定CHARACTER SET,也不指定COLLATE,则使用数据库默认。
除了能制定字符集和校对的表范围外,MySQL还允许对每个列设置它们,如下:
CREATE TABLE mytable2 (
column1 INT NOT NULL AUTO_INCREMENT,
column2 VARCHAR (10),
column3 VARCHAR (10) CHARACTER SET latin1 COLLATE latin1_general_ci,
PRIMARY KEY (column1)
) DEFAULT CHARACTER
SET hebrew COLLATE hebrew_general_ci;
这里对整个表以及一个特定的列指定了CHARACTER SET和COLLATE。
校对在对用ORDER BY子句检索出来的数据排序时起重要的作用。如果你需要用与创建表时不同的校对顺序排序特定的SELECT语句,可以在SELECT语句自身中进行:
SELECT
*
FROM
customers
ORDER BY
cust_address,
cust_name COLLATE utf8_general_ci;
此SELECT使用COLLATE指定一个备用的校对顺序(可设置为区分大小写或不区分大小写),这显然将会影响到结果的排序的次序。
注意:列中选择COLLATE有可能会出现错误,一般来说都是选择字符集对应的校对模式不对,只需要查询相应的模式即可,比如,此次的character是utf8,则可以如下返回对应的字符集对应的校对模式:
SHOW COLLATION LIKE 'utf8%';
SELECT的其他COLLATE子句
除了ORDER BY子句中使用以外,COLLATE还可以用于GROUP BY,HAVING,聚集函数、别名等。
如果需要,串可以在字符集之间进行转换。使用Cast()或Convert()函数。
SELECT
*
FROM
customers
ORDER BY
cust_address,
CONVERT (cust_name USING latin1) COLLATE latin1_general_cs;
0 0
- MySQL必知必会-23MySQL全球化和本地化
- 【MySQL】事务处理 全球化和本地化(字符集和校对)
- MySQL必知必会笔记(七)事务处理 全球化和本地化(字符集和校对)
- MySQL必知必会笔记(五)事务处理 全球化和本地化(字符集和校对)
- MySQL必知必会笔记(七)事务处理 全球化和本地化(字符集和校对)
- MySQL必知必会笔记(五)事务处理 全球化和本地化(字符集和校对)
- 全球化和本地化
- scriptManager和全球化和本地化
- ASP.NET 全球化和本地化
- ASP.NET 全球化和本地化
- ASP.NET 全球化和本地化
- 谈全球化软件测试和本地化测试
- 7.《MySQL必知必会》事务,全球化,安全管理与维护
- 本地化、全球化、国际化测试
- 关于让WPF软件界面支持全球化和本地化
- 关于让WPF软件界面支持全球化和本地化
- 关于让WPF软件界面支持全球化和本地化
- 从Asp.net实现资源全球化和本地化
- 添加ssh公钥到远程主机授权文件
- cs231n Convolutional Neural Network 笔记
- iOS之去除UITableView底部多余行及分割线
- Chrome开发者工具不完全指南(四、性能进阶篇)
- Spring事务的“坑”
- MySQL必知必会-23MySQL全球化和本地化
- Spark SQL 编程示例
- 学习笔记----设计模式之动态代理+工厂模式的混合使用简单demo
- Ext 行高亮
- android studio碰到的问题
- [CF785D]Anton and School
- 计算机编程好学吗 需要什么基础知识?
- C++ string的trim, split方法
- 蓝桥杯 打印十字