字符集和校对顺序
数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索。因此,MySQL需要适应不同的字符集(不同的字母和字符),适应不同的排序和检索数据的方法
- 字符集为字母和符号的集合
- 编码为某个字符集成员的内部表示
- 校对为规定字符如何比较的指令
# 查看MySQL所支持的字符集完整列表
> SHOW CHARACTER SET;
# 查看MySQL所支持校对的完整列表
> SHOW COLLATION;
# 查看默认字符集和校对
> SHOW VARIABLES LIKE 'character%';
> SHOW VARIABLES LIKE 'collation%';
# 给表指定字符集和校对
> CREATE TABLE mytable(
columnn1 INT,
columnn2 VARCHAR(10)
)
DEFAULT CHARACTER SET hebrew
COLLATE hebrew_general_ci;
# 对每列指定字符集和校对
> CREATE TABLE mytable(
columnn1 INT,
columnn2 VARCHAR(10),
columnn2 VARCHAR(10) CHATACTER SET latin1 COLLATE latin1_general_ci
)
DEFAULT CHARACTER SET hebrew
COLLATE hebrew_general_ci;
# 使用与常见表时不同的校对顺序排序特定的SELECT语句
> SELECT * FROM customers
ORDER BY lastname,firstname COLLATE latin1_general_cs;
如果绝对需要,串可以在字符集之间进行转换。为此使用
Cast()
或Convert()
函数