ITPub博客

首页 > 数据库 > MySQL > MySQL修改字符集

MySQL修改字符集

原创 MySQL 作者:壹頁書 时间:2014-09-30 14:46:22 1 删除 编辑
服务器编码:


实验内容
初始的表为utf8编码,修改数据库,表,字段的字符集为GBK,查看效果。

数据初始化:
  1. create table t (name varchar(20),content varchar(20));
  2. insert into t values('测','测');
  3. commit;
  4. select hex(name),hex(content) from t;
1.设置数据库编码为GBK,查看表是否有影响

查看t表没有任何影响

但是新建的表如果没有指定字符集,会沿用数据库的默认字符集


也就是说修改数据库的默认字符集,对原有的表没有作用
仅针对新建且没有指定字符集的表有作用。

2.设置表的默认字符集为GBK(实验之前,还原数据库的默认字符集编码为utf8)

可以看到修改表的默认字符集,不会影响原有的数据
虽然表的默认字符集修改为了GBK,但是所有的字段都沿用了utf8编码。
如果新建字段,会默认为GBK编码


3.转换表的字符集
这个效果应该符合大多数场景的预期


4.修改字段的字符集


附常用命令,转载自
http://fatkun.com/2011/05/mysql-alter-charset.html

修改数据库字符集:

ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];

把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...] 如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

只是修改表的默认字符集:

ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

修改字段的字符集:

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

查看数据库编码:

SHOW CREATE DATABASE db_name;

查看表编码:

SHOW CREATE TABLE tbl_name;

查看字段编码:

SHOW FULL COLUMNS FROM tbl_name;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-1285916/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 源码安装Nginx
请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    620
  • 访问量
    6340032