数据库提供了多种字符集,如Latin1、utf8、gdk、big5等。字符集指的是在同一个字符集内字符之间的比较规则。只有确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系。一个字符集可以包含多种字符序,每个字符集有个默认的字符序(default collation),每个字符唯一对应一种字符集。MySQL字符命名规则是:以字符序对应的字符集名称开头,以国家名居中(或以general居中),以ci、cs或bin结尾。以ci结尾的字符表示大小写不敏感,以cs结尾的字符集表示大小写敏感,以bin结尾的字符集序表示按二进制编码值比较。例如:latin1字符集有latin1_swedish_ci、latin1_gengeral_cs、latin1_bin等字符序,其中在字符序latin_swedish_ci规则中,字符‘a’和“A”是等价的。
Latin1支持西欧字符、希腊字符等,gbk支持中文简体字符,big5支持中文繁体字符,utf8几乎支持世界上所有国家的字符。
Latin1 占用一个字节(8位)
Gbk 占用两个字节
Utf8 占用三个字节
使用MySQL命令:show character set;查看字符集。
使用MySQL命令:show variables like ‘character%’;查看当前MySQL会话使用的字符集,其中character_sets_dir 参数定义了MySQL字符集文件保存路径
“C:\programfiles\mysql\mysql server 5.6\share\charsets”
其中,client:MySQL客户机的字符集,默认安装MySQL后,该值为latin1
Connection:数据通信链路的字符集,当MySQL客户机向服务器发送请求时,请求数据以该字符集进行编码。默认安装数据库后,该值为latin1
Database:数据库字符集,默认安装数据库后,该值为latin1
Filesystem:MySQL服务器文件系统的字符集,该值是固定的binary
Results:结果集的字符集,MySQL服务器向MySQL客户机返回执行结果时,执行结果以该字符集进行编码。默认安装后,该值为latin1
Server:MySQL服务器实例字符集,默认安装MySQL后,该值为latin1
System:元数据(字段名、表名、数据库名等)的字符集,默认值为utf8.
使用“show variables like ‘collation%’”查看当前MySQL会话使用的字符序。