MySQL字符集转换实战(mysql 转换字符集)
MySQL是一种开放源代码的关系型数据库系统,具有高性能、高可靠性等优势,故是网站开发中使用得比较多的数据库系统。随着业务和客户的需求,开发者经常会遇到MySQL字符集转换的问题。那么,在MySQL字符集转换的实战中,我们应该如何操作呢?
首先说明的是,在MySQL中,如果需要改变字符集一般是针对数据库和表的,而对列的字符集的转换则是采用ALTER TABLE的命令。当然,这都是针对已有的表,而当我们开发要创建新表时,我们只需要设置表的字符集就可以了。
下面我们来实战,第一步就是确认MySQL版本,主要用于判断当前mysql引擎是什么,是使用set names 改变字符集还是alter table 改变字符集,代码如下:
SELECT VERSION();
第二步,设置连接的字符集,因为数据在插入数据库之前就已经被转换成连接字符集,For example,要将utf8转换成gbk,则只需将连接字符集改成gbk即可,代码如下:
SET NAMES GBK
第三步,清理数据库所有字符,要改变数据库的字符集,需要清理数据库所有字符,代码如下:
ALTER DATABASE CHARACTER SET gbk;
第四步,改变指定表的字符集,多个表可以使用show tables查出,然后遍历出每一张表,批量执行如下语句:
单表处理——表的字符集改成存储的字符集
ALTER TABLE CONVERT TO CHARACTER SET gbk;
多表处理——批量设置表的字符集
ALTER TABLE CONVERT TO CHARACTER SET gbk, CONVERT TO CHARACTER SET gbk;
第五步,改变表字段字符集,方法是使用alter table语句修改列的字符集,如需要批量修改一张表的列字符集,如下所示:
ALTER TABLE CHANGE VARCHAR(200) CHARACTER SET gbk, CHANGE VARCHAR(200) CHARACTER SET gbk;
这『五步』就是MySQL字符集转换的操作过程了,此外,该过程也可以通过神器Navicat Premium来实现,只需要根据对应的提示修改就可以实现自动转换了,比较简单。
总结:MySQL字符集转换一般针对数据库和表,而列是采用 ALTER TABLE 命令修改,总共五步,且可以通过神器Navicat Premium自动完成。