下面正式开始mysql操作学习了,基础知识点会枯燥,会无味,会焦虑,但是相信当你熟练掌握后会无比的兴奋,因为你在见证数据给这个时代带来的伟大变革,你正在见证由数据库驱动的信息革命
一.中文乱码问题
由于服务器编解码和客户端编解码不一致,所以本质上我们把插入数据的指令传送到服务器上执行,会出现乱码,反而言之,从服务器传送过来的数据也会是乱码
4.MySQL中的中文问题
create table if not exists stu12(
id int auto_increment primary key,
name varchar(20)
);
insert into stu12 values(null, 'lnj');
# 默认情况下插入中文会报错
# 但是报错的原因不在于插入的是否是中文
# 而是因为插入数据的时候本质上是从客户端将插入语句发送到了MySQL服务器,
# MySQL服务器接收到插入语句之后再执行插入语句
# 如果客户端是以GBK发送的, 而服务端是以UTF8接收的, 那么就会报错(不能识别)
insert into stu12 values(null, '黄忠');
#查看服务器编解码字符集
show variables like 'character_set_%';
+--------------------------+------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------+
| character_set_client | utf8 以什么字符集接收客户端发送的数据 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 以什么字符集给客户端发送数据 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:\Developer\MySQL\share\charsets\ |
+--------------------------+------------------------------------+
#解决中文不能插入和返回中文是乱码的问题
#将客户端和MySQL服务器的编码设置为一样的即可
#windows的终端无法修改编码, 所以我们可以通过set names gbk;来修改MySQL的字符集
#set names gbk;会自动修改MySQL服务器接收和返回的编码方式
character_set_client : 接收客户端的编码方式
character_set_results: 返回给客户端的编码方式
--------------------------极客江南