目录
字符集和校对顺序
数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索。因此,MySQL
需要适应不同的字符集(不同的字母和字符),适应不同的排序和检索数据的方法。
字符集
为字母和符号的集合;
编码
为某个字符集成员的内部表示;
校对
为规定字符如何比较的指令。
使用字符集和校对顺序
通常系统管理在安装时定义一个默认的字符集和校对。此外,也可以在创建数据库时,指定默认的字符集和校对。
为了确定所用的字符集和校对
,可以使用以下语句:

实际上,字符集很少是服务器范围(甚至数据库范围)的设置。
不同的表,甚至不同的列都可能需要不同的字符集
,而且两者都
可以在创建表时指定。
为了
给表指定字符集和校对
,可使用带子句的
CREATE TABLE

如果指定
CHARACTER SET
和
COLLATE
两者,则使用这些值。
如果只指定
CHARACTER SET
,则使用此字符集及其默认的校对(如SHOW CHARACTER SET的结果中所示)。
如果既不指定
CHARACTER SET
,也不指定
COLLATE
,则使用数据库
默认。
除了能指定字符集和校对的表范围外,
MySQL还允许
对每个列设置它们的字符集和校对

如果你需要用
与创建表时不同的校对顺序排序
特定的
SELECT
语句,可以在SELECT
语句自身中进行:



最后,值得注意的是,如果绝对需要,串可以在字符集之间进行转换。为此,使用Cast()
或
Convert
()
函数。
(
数据类型转换可以通过CAST()和CONVERT()函数来实现
)