栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySQL修改数据库、表、字段的字符编码

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL修改数据库、表、字段的字符编码

  •  备战2022春招或暑期实习,本专栏会持续输出MySQL系列文章,祝大家每天进步亿点点!文末私信作者,我们一起去大厂。
  • 本篇总结的是 《MySQL之流程函数》,后续会每日更新~关于《Redis入门到精通》、《并发编程》、《Java全面入门》、《鸿蒙开发》等知识点可以参考我的往期博客相信自己,越活越坚强,活着就该逢山开路,遇水架桥!生活,你给我压力,我还你奇迹!

    目录

    一、简介

    二、案例

    三、解决方式


    一、简介

    很多情况下我们创建一张表忘记设置默认的字符编码,MySQL会为其设置默认的编码格式,这会导致在插入数据的数据字符集不匹配出现异常。

    二、案例

    案例:创建一张user表,不指定表和字段的编码格式

    create table user (
      id int(10) primary key auto_increment comment '主键',
      name varchar(20) unique not null comment '姓名',
      age tinyint unsigned comment '年龄',
      status char(1) default '1' comment '状态',
      gender char(1) comment '性别'
    ) comment '用户表';
    

    此时往表中插入一条数据

    INSERT INTO user (name, age, status, gender) VALUES ('李子捌', 18, '1', '男');
    

    出现了如下异常信息

    [2022-02-28 11:21:42] [HY000][1366] Incorrect string value: 'xE6x9Dx8ExE5xADx90...' for column 'name' at row 1
    [2022-02-28 11:21:42] [HY000][1366] Incorrect string value: 'xE7x94xB7' for column 'gender' at row 1
    

    这种情况就是字符编码格式不匹配问题,这应该如何解决呢?当然是修改字符编码方式。

    三、解决方式

    首先可以先查看数据库、表和字段的字符集,然后在修改不匹配的字符集即可
    A. 查看数据库的字符集方式

    -- database_name 为数据库名称
    SHOW CREATE DATAbase database_name;
    

    B. 查看表的字符集方式

    -- table_name为表的名称
    SHOW CREATE TABLE table_name;
    

    C. 查看字段的字符集方式

    -- column_name为字段名称
    SHOW FULL COLUMNS FROM column_name;
    

    修改数据库、表和字段的字符集方式如下
    A. 修改数据库的字符集方式

    -- database_name 为数据库名称
    -- utf8为目标字符编码
    ALTER DATABSE database_name DEFAULT CHARACTER SET utf8;
    

    B. 修改表的字符集方式

    -- table_name为表的名称
    -- utf8为目标字符编码
    ALTER TABLE table_name DEFAULT CHARACTER SET utf8;
    

    C. 修改字段的字符集方式

    -- table_name为表的名称
    -- column_name为字段名称
    -- varchar(20)为字段的类型
    -- utf8为目标字符集
    ALTER TABLE table_name CHANGE column_name column_name VARCHAr(20) CHARACTER SET utf8;
    

    D. 同时修改表和表中所有字符类型的字段字符集方式

    -- 例子:alter table user2 convert to character set utf8 collate utf8_general_ci;
    ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
    

  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/748948.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号