27.1 字符集和校对顺序
数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索。因此,MySQL需要适应不同的字符集(不同的字母和字符),适应不同的排序和检索数据的方法。
在讨论多种语言和字符集时,将会遇到以下重要术语:
- 字符集:字母和符号的集合;
- 编码:某个字符集成员的内部表示;
- 校对:规定字符如何比较的指令。
使用何种字符集和校对的决定在服务器、数据库和表级进行。
27.2 使用字符集和校对顺序
显示mysql所有可用的字符集以及每个字符集的描述和默认校对。
SHOW CHARACTER SET ;
查看mysql支持的所有校对,以及它们适用的字符集。
SHOW COLLATION;
查看数据库所使用的字符集和校对
SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'col1ation%';
建表时指定表默认的字符集和校对
CREATE TABLE mytable
(
columnn 1 INT,
columnn2 VARCHAR(10)
) DEFAULT CHARACTER SET hebrew
COLLATE hebrew_ general_ ci ;
对每个列单独设置字符集和校对
CREATE TABLE mytable
(
Columnn1 INT ,
column2 VARCHAR(10) ,
column3 VARCHAR (10) CHARACTER SET latin1 COLLATE latin1_ general_ _ci
) DEFAULT CHARACTER SET hebrew
COLLATE hebrew_ general_ ci;
在ORDER BY时,指定校对方式
SELECT * FROM customers
ORDER BY lastname, firstname COLLATE latin1_ general_cs;
**注意:**除了这里看到的在ORDER BY子句中使用以外,COLLATE还可以用于GROUP BY、HAVING、聚集函数、别名等。
27.3 小结
本章中,我们学习了字符集和校对的基础知识,还学习了如何对特 定的表和列定义字符集和校对,如何在需要时使用备用的校对。