《MySQL必知必会》--字符集和校对顺序

全球化和本地化

字符集和校对顺序

数据库被用来存储和检索数据。不同的语言和字符需要以不同的方式存储和检索。
因此,MySQL需要适应不同的字符集(不同的字母和字符),适应不同的排序和检索数据的方法。

  • 字符集为字母和符号的集合;
  • 编码为某个字符集成员的内部集合;
  • 校对为规定字符如何比较的指令。

使用字符集和校对顺序

1
2
SHOW CHARACTER SET;
-- 显示所有可用的字符集以及每个字符集的描述和默认校对。
1
2
SHOW COLLATION;
-- 显示所有可用的校对,以及它们适用的字符集。
1
2
3
4
5
6
7
8
CREATE TABLE mytable
( column1 INT,
column2 VARCHAR(10)
) DEFAULT CHARACTER SET hebrew
COLLATE hebrew_general_ci;

-- 创建包含两列的表,并且指定一个字符集和一个校对顺序。
-- 如不指定,则系统默认。
1
2
3
4
5
6
7
8
9
CREATE TABLE mytable
(
column1 INT,
column2 VARCHAR(10),
column3 VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_general_ci
) DEFAULT CHARACTER SET hebrew
COLLATE hebrew_general_ci;

-- 在column3处指定区分大小写
1
2
3
4
SELECT * FROM customers
ORDER BY last_name,first_name COLLATE latin1_general_cs;

-- 指定检索结果校对顺序区分大小写。