300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > MySQL插入中文出现报错: ERROR 1366 (HY000): Incorrect string value: ‘\xD5\xC5\xC8\xFD‘的解决方案

MySQL插入中文出现报错: ERROR 1366 (HY000): Incorrect string value: ‘\xD5\xC5\xC8\xFD‘的解决方案

时间:2023-02-10 00:44:59

相关推荐

MySQL插入中文出现报错: ERROR 1366 (HY000): Incorrect string value: ‘\xD5\xC5\xC8\xFD‘的解决方案

MySQL插入中文出现报错: ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD’的解决方案

1 MySQL 5.5 版本

1.1 设置names为gbk

a 语法

SET names gbk;

b 示例sql语句

set names gbk;

c 示例sql语句运行截图

1.2 建库时需要设置字符编码集为utf8

a 语法

CREATE DATABASE IF NOT EXISTS 库名 CHARACTER SET 字符编码集;

b 示例sql语句

CREATE DATABASE IF NOT EXISTS temp CHARACTER SET utf8;

c 示例sql语句运行截图

d 对应的库结构如下所示:

1.3 需要选中刚刚创建的数据库

a 语法

USE 表名;

b 示例mysql语句

use temp;

c 示例mysql语句运行截图

1.4 建表时无需设置字符编码集,因为默认会继承所在数据库中的字符编码集

a 语法

CREATE TABLE IF NOT EXISTS 表名(字段1 数据类型(类型长度) 约束,字段2 VARCHAR(30)/CHAR(30) 约束,....字段n 数据类型(类型长度) 约束);/*一般来说,往数据类型为VARCHAR类型或者CHAR类型的字段里面插入数据的话,才是有可能出现中文插不进去的情况,其他数据类型去插入中文就没有啥实际意义*/

b 示例sql语句

CREATE TABLE IF NOT EXISTS student(student_id int(10) PRIMARY KEY,name VARCHAR(30) NOT NULL,age int(10) DEFAULT 0);

c 示例sql语句运行截图

d 查看表的当前结构

1.5 插入一条中文数据

a 语法

INSERT INTO 表名 VALUES(字段1对应的值,字段2对应的值....字段n对应的值);/*字段1就是表格第一列,字段2就是表格的第二列,字段n就是表格的第n列这种插入写法要求,要从第一列开始一一对应进行插入,不能少一个值也不能多一个值;*/

b 示例sql语句

INSERT INTO student VALUES(2201,'刘备',18);

c 示例sql语句运行截图

1.6 查询表的内容,检查刚刚插入的一条中文数据是否能正常显示

a 语法

SELECT 插入中文字段 FROM 表名;/*虽然也可以用SELECT *进行查询,但是一般情况下不建议那么用,因为这样用的查询效率很低的一般情况下,都是需要什么,就查询什么*/

b 示例sql语句

SELECT name FROM student;

c 示例sql语句运行截图

2 MySQL 5.7版本

2.1 若还没有建库建表

2.1.1 建库时设置它的字符编码集为utf8

a 语法

CREATE DATABASE IF NOT EXISTS 库名 CHARACTER SET 字符编码集;

b 示例sql语句

CREATE DATABASE IF NOT EXISTS temp01 CHARACTER SET utf8;

c 示例sql语句运行截图
d 对应的库结构如下所示:

2.1.2 建表时无需设置字符编码集,因为默认会继承所在数据库中的字符编码集

a 语法

CREATE TABLE IF NOT EXISTS 表名(字段1 数据类型(类型长度) 约束,字段2 VARCHAR(30)/CHAR(30) 约束,....字段n 数据类型(类型长度) 约束);/*一般来说,往数据类型为VARCHAR类型或者CHAR类型的字段里面插入数据的话,才是有可能出现中文插不进去的情况,其他数据类型去插入中文就没有啥实际意义*/

b 示例sql语句

CREATE TABLE IF NOT EXISTS student(student_id int(10) PRIMARY KEY,name VARCHAR(30) NOT NULL,age int(10) DEFAULT 0);

c 示例sql语句运行截图
d 查看表的当前结构

2.1.3 插入一条中文数据

a 语法

INSERT INTO 表名 VALUES(字段1对应的值,字段2对应的值....字段n对应的值);/*字段1就是表格第一列,字段2就是表格的第二列,字段n就是表格的第n列这种插入写法要求,要从第一列开始一一对应进行插入,不能少一个值也不能多一个值;*/

b 示例sql语句

INSERT INTO student VALUES(2201,'李四',6);

c 示例sql语句运行截图

2.1.4 查询表的内容,检查刚刚插入的一条中文数据是否能正常显示

a 语法

SELECT 插入中文字段 FROM 表名;/*虽然也可以用SELECT *进行查询,但是一般情况下不建议那么用,因为这样用的查询效率很低的一般情况下,都是需要什么,就查询什么*/

b 示例sql语句

SELECT name FROM student;

c 示例sql语句运行截图

2.2 若已经建表了

2.2.1 先查看表的当前的字符编码集

a 语法

SHOW CREATE TABLE 表名;/*表名就是你要查找字符编码集的表名*/

b 示例mysql语句

SHOW CREATE TABLE student;

c 示例mysql语句运行截图

2.2.2 更改当前表的字符集

a 语法

ALTER TABLE 表名 CHARACTER SET 更改后的字符集;/*表名就是你要当前表的表名*/

b 示例sql语句

ALTER TABLE student CHARACTER SET utf8;

c 示例sql语句运行截图
d 对应的表结构如下所示:

2.2.3 更改需要插入中文的字段的字符编码集

a 语法

ALTER TABLE 表名 MODIFY COLUMN 字段 原来的字段数据类型(字段长度) CHARACTER SET utf8 约束;/*表名就是你要当前表的表名*/

b 示例sql语句

ALTER TABLE student MODIFY COLUMN name VARCHAR(30) CHARACTER SET utf8 NOT NULL;

c 示例sql语句运行截图
d 对应的表结构如下所示:

2.2.4 插入一条中文数据

a 语法

INSERT INTO 表名 VALUES(字段1对应的值,字段2对应的值....字段n对应的值);/*字段1就是表格第一列,字段2就是表格的第二列,字段n就是表格的第n列这种插入写法要求,要从第一列开始一一对应进行插入,不能少一个值也不能多一个值;*/

b 示例sql语句

INSERT INTO student VALUES(2201,'张三',9);

c 示例mysql语句运行截图

2.2.5 查询表的内容,检查刚刚插入的一条中文数据是否能正常显示

a 语法

SELECT 插入中文字段 FROM 表名;/*虽然也可以用SELECT *进行查询,但是一般情况下不建议那么用,因为这样用的查询效率很低的一般情况下,都是需要什么,就查询什么*/

b 示例sql语句

SELECT name FROM student;

c 示例mysql语句运行截图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。