MySQL数据库的字符编码问题

数据库的编码格式

  • 查看数据库编码格式:show variables like '%character%'
  • 修改数据库编码格式:set character_set_database = 'utf8'
  • 修改MySQL客户端编码格式:set names utf8
关于MySQL 5.7 Command Line ClientMySQL 5.7 Command Line Client - Unicode

个人理解:这是两个不同的MySQL客户端,前者编码格式为latin1,不支持UTF8编码(即使将编码格式设为utf8也不行),而后者默认编码格式为utf8。因此,最好使用后者

例如,前者默认无法显示查询结果中的中文字符(命令行显示乱码),需要将编码格式改为gbk,而后者默认就能显示中文字符

在这里插入图片描述
在这里插入图片描述

数据表与字段的编码格式

创建数据表时如果不指定编码格式,那么数据表和字段的默认编码格式均为latin1

  • 查看数据表编码格式:show create table test

在这里插入图片描述

修改数据表编码格式的方式有两种:

  • 方式一:alter table test character set utf8
  • 方式二:alter table test convert to character set utf8

对于方式一,该操作仅能修改数据表的编码格式,而不能修改表中字段的编码格式,需要进一步使用alter table语句

在这里插入图片描述

对于方式二,该操作可以同时修改表中字段的编码格式

在这里插入图片描述

在这里插入图片描述
特别注意:只有字段与表的编码格式不一致时,才会显示字段的编码格式

创建时设置编码格式

综合以上,在创建数据库和数据表时一定要设置合适的编码格式,一般为utf8

  • 创建数据库时:在CREATE语句后加DEFAULT CHARACTER SET utf8
  • 创建数据表时:在字段声明,即圆括号后加DEFAULT CHARACTER SET utf8

在这里插入图片描述
以上均为个人见解,如有谬误,欢迎指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值