数据库建库时默认是设置的latin1编码,查看系统的字符集和排序方式
show variables like
'character%';

SHOW VARIABLES LIKE
'collation_%';

SET NAMES gb2312;
show variables like 'character%';

SET NAMES x
相当于
SET character_set_client =
x;
SET character_set_results =
x;
SET character_set_connection = x;基本概念
•
字符(Character)是指人类语言中最小的表义符号。例如’A'、’B'等;
•
给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给字符’A'赋予数值0,给字符’B'赋予数值1,则0就是字符’A'的编码;
•
给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character
Set)。例如,给定字符列表为{’A',’B'}时,{’A'=>0,
‘B’=>1}就是一个字符集;
•
字符序(Collation)是指在同一字符集内字符之间的比较规则;
•
确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系;
•
每个字符序唯一对应一种字符集,但一个字符集可以对应多种字符序,其中有一个是默认字符序(Default
Collation);
•
MySQL中的字符序名称遵从命名惯例:以字符序对应的字符集名称开头;以_ci(表示大小写不敏感)、_cs(表示大小写敏感)或_bin(表示按编码值比较)结尾。例如:在字符序“utf8_general_ci”下,字符“a”和“A”是等价的;
MySQL字符集设置
• 系统变量:
– character_set_server:默认的内部操作字符集
–
character_set_client:客户端来源数据使用的字符集
–
character_set_connection:连接层字符集
–
character_set_results:查询结果字符集
–
character_set_database:当前选中数据库的默认字符集
–
character_set_system:系统元数据(字段名等)字符集
–
还有以collation_开头的同上面对应的变量,用来描述字符序。
•
用introducer指定文本字符串的字符集:
– 格式为:[_charset] ’string’ [COLLATE
collation]
– 例如:
• SELECT _latin1
’string’;
• SELECT _utf8 ‘你好’ COLLATE
utf8_general_ci;













