mysql中字符集的功能?
mysql字符集是一套符合和编码,校验规则(collation)是在字符集内用于比较字符的一套规则,即字符集的排序规则。MySQL可以使用对种字符集和检验规则来组织字符。
MySQL服务器可以支持多种字符集,在同一台服务器,同一个数据库,甚至同一个表的不同字段都可以指定使用不同的字符集,相比oracle等其他数据库管理系统,在同一个数据库只能使用相同的字符集,MySQL明显存在更大的灵活性。
每种字符集都可能有多种校对规则,并且都有一个默认的校对规则,并且每个校对规则只是针对某个字符集,和其他的字符集么有关系。
图片来源:网络
请简述MySQL字符集的转换过程?
MySQL 字符集转换过程涉及从一个字符集(源字符集)转换为另一个字符集(目标字符集)。它包括以下步骤:
字符编码转换:使用源字符集的编码将字节转换为 Unicode 字符。
字符集映射:根据源字符集和目标字符集之间的映射表,将 Unicode 字符转换为目标字符集的 Unicode 字符。
字节编码转换:将目标字符集的 Unicode 字符转换为目标字符集的字节编码。
如何修改mysql数据库字符集?
但是遗憾的是,很多人编译安装MySQL的时候没有指定这两个参数,大多数人更是通过二进制程序的方式安装,那么这时候MySQL的默认字符集是latin1。而这时候我们仍然可以指定MySQL的默认字符集,通过my.cnf文件增加两个参数:1.在[mysqld]下添加 default-character-set=utf8(mysql5.5版本添加character-set-server=utf8)2.在[client]下添加 default-character-set=utf8这样我们建数据库建表的时候就不用特别指定utf8的字符集了。配置文件里的这种写法解决了数据存储和比较的问题,但是对客户端的连接是没有作用的,客户端这时候一般需要指定utf8方式连接才能避免乱码。也就是传说总的setnames命令。事实上,setnamesutf8命令对应的是服务器端以下几个命令: SETcharacter_set_client=utf8; SETcharacter_set_results=utf8;
如何修改mysql表中数据字符集?
但是遗憾的是,很多人编译安装MySQL的时候没有指定这两个参数,大多数人更是通过二进制程序的方式安装,那么这时候MySQL的默认字符集是latin1。而这时候我们仍然可以指定MySQL的默认字符集,通过my.cnf文件增加两个参数:1.在[mysqld]下添加 default-character-set=utf8(mysql 5.5 版本添加character-set-server=utf8)2.在[client]下添加 default-character-set=utf8这样我们建数据库建表的时候就不用特别指定utf8的字符集了。配置文件里的这种写法解决了数据存储和比较的问题,但是对客户端的连接是没有作用的,客户端这时候一般需要指定utf8方式连接才能避免乱码。也就是传说总的set names命令。事实上,set names utf8命令对应的是服务器端以下几个命令: SET character_set_client = utf8; SET character_set_results = utf8;