• 备战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: '\xE6\x9D\x8E\xE5\xAD\x90...' for column 'name' at row 1
[2022-02-28 11:21:42] [HY000][1366] Incorrect string value: '\xE7\x94\xB7' 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 ...]

MySQL修改数据库、表、字段的字符编码相关推荐

  1. MYSQL修改数据库表

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  2. oracle修改数据库表字段

    --修改表字段名称 alter table table_name column old_name to new_name; -- 修改表字段类型 alter table tb modify (name ...

  3. MySQL修改数据表中的字段名

    MySQL修改数据表中的字段名 在一张数据表中只能设置一个唯一名称的字段名.在同一张数据表中,不能出现两个名称完全相同的字段名. 因此,数据库系统可以通过字段名来区分数据表中的不同字段. 在MySQL ...

  4. 修改数据库某个字段的长度时出现“无法修改表。无法对 表‘XXX‘ 执行 删除,因为它正用于复制。”

    修改数据库某个字段的长度时出现: "无法修改表.无法对 表'dbo.N_Client_content' 执行 删除,因为它正用于复制." 不能直接对该数据库进行操作,通过alter ...

  5. 数据库系统原理与应用教程(024)—— MySQL 修改数据表的结构

    数据库系统原理与应用教程(024)-- MySQL 修改数据表的结构 目录 数据库系统原理与应用教程(024)-- MySQL 修改数据表的结构 一.修改表名 二.更改数据表所使用的存储引擎 1.查看 ...

  6. 0基础能学mysql数据库吗_mysql学习入门:零基础如何使用mysql创建数据库表?

    零基础如何自学Mysql创建数据库,是Mysql学习者必经之路,Mysql是受欢迎的关系数据库管理系统,WEB应用方面MySQL是很好的RDBMS应用软件之一.如何使用Mysql创建数据库表,打开My ...

  7. php 批量修改表格数据,PHP批量修改数据库表前缀教程+代码

    有时候需要批量修改数据库表前缀,最简单的方法就是一个表一个表的手动修改,但是非常浪费时间.这里为大家分享一段自用的利用PHP批量修改数据库表前缀的方法,亲测可用,下面上代码. PHP修改表前缀代码&l ...

  8. 《MySQL系列-开发相关》MySQL新建数据库表并存储2010年到2030年的日期

    MySQL新建数据库表并存储2010年到2030年的日期 一.建表 CREATE TABLE `datetime` (`id` int(10) NOT NULL AUTO_INCREMENT,`dat ...

  9. 服务器mysql 修改数据库密码怎么修改,服务器mysql修改数据库密码

    服务器mysql修改数据库密码 内容精选 换一换 本节将介绍在华为云关系型数据库服务的管理控制台创建实例的过程.目前,RDS for SQL Server支持"包年/包月"和&qu ...

  10. MySQL之数据库表的设计

    MySQL之数据库表的设计 一.表与表关系分类 1.一对多 2.多对多 3.一对一 二.表与表关系设计 1.创建四张表 2.表间关系分析: 3.设计例子 三.数据库范式 1.什么是范式? 2.函数依赖 ...

最新文章

  1. 通俗易懂!使用Excel和TF实现Transformer
  2. MySQL数据库基本操作总结(不断更新中......)
  3. [从0到1编写服务器]准备知识
  4. NIO网络编程实战之简单多人聊天室
  5. 实现一个在JNI中调用Java对象的工具类,从此只需一行代码
  6. 天堂Lineage(單機版)從零開始架設教學 Installing Lineage 3.52 Server - On Windows
  7. 文本分类问题不需要ResNet?小夕解析DPCNN设计原理(上)
  8. ImageLoader的简单分析(二)
  9. 《人工智能赋能数字水务》白皮书来了!
  10. router走差分_route
  11. c专家编程(C专家编程pdf)
  12. 计算机未响应怎样解决方案,电脑提示Internet Explorer未响应怎么办?解决IE浏览器未响应的解决方法...
  13. 如何用计算机进行照片合成,不借助软件怎样将两张照片合成一张?一招教你搞定!...
  14. 一键更新盘古权限系统
  15. 剧本杀游戏app开发
  16. 五、降维——从SNE到t-SNE再到LargeVis
  17. php curlclose,PHP curl_close函数 - PHP 教程 - 自强学堂
  18. Windows命令-文件操作-剪切文件-move
  19. 荐书 |《心理认知研究口头报告法》:还在为实验设计发愁吗,来看看这种方法吧
  20. 文档在线预览解决方案-永中云预览服务

热门文章

  1. Android中播放DSD音乐
  2. pytorch多损失回传案例
  3. python版本升级
  4. [No0000A3]护眼谎言大揭秘,选择正确的方式保护眼睛!
  5. 转,半导体协议的主要应用方面
  6. java属性定义_在java中定义抽象属性
  7. 阿里面试1234面详细完整流程——JAVA岗位
  8. Mac安装--locust压力测试
  9. MT6739 Sensor移植
  10. 中国农业银行 云 BMP 二维码支付商户接入