2021.5.13 酷@der 学习Java第一天从数据库开始
-
一切从产生问题开始->解决问题->到最后好开森呀
ALTER DATABASE db7 CHARACTER SET utf8; //最好建立表得时候,设置好utf-8;
//创建一个student表
CREATE TABLE student(
sid INT,
sname VARCHAR(20),
age INT,
sex CHAR(1),
address VARCHAR(40)
);
- 注意创建表得时候,最后一个数据不用逗号。
INSERT INTO student (sid,sname,age,sex,address) VALUES(1,'茜茜',25,'女','贵州');
这里看着都正常,但是插入数据就报错 Incorrect string value: '\xE5\xAD\x99\xE6\x82\x9F...' for column 'sname' at row 1
插入英文可以
就说明不能插入中文。检查一番,我建库和表都是utf-8,之后想了想是不是列有问题。采用以下操作就可以正确插入中文。但是这样很繁琐。
ALTER TABLE Student CHANGE sname sname VARCHAR(20) CHARACTER SET utf8;
ALTER TABLE Student CHANGE sex sex VARCHAR(20) CHARACTER SET utf8;
ALTER TABLE Student CHANGE address address VARCHAR(20) CHARACTER SET utf8;
网上查说是因为:此时表的编码格式已经改变,但是列的编码格式显示为Latin1
网上解决办法都是去改数据库mysql配置文件,我不会,所以就采用了在创建库的时候,采用以下俩个方法:
方法一:
CREATE TABLE student(
sid INT,
sname VARCHAR(20),
age INT,
sex CHAR(1),
address VARCHAR(40),
images VARCHAR(30)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
就是这句话:
ENGINE=INNODB DEFAULT CHARSET=utf8;
方法二:
CREATE DATABASE db7 CHARACTER SET utf8;
总结:虽然这很简单,但是对于自学的我来讲,很多细节都不太注意。我很开森。迈向成为Java后端开发女程序员的第一步。