把Excel文件导入到Navicat for MySQL时的问题

首先,是字符集的问题。这种问题很常见,在新建立的表的时候在表中插入数据,但是插入汉字的时候却总会出乱码。

解决问题方法如下:mysql> show variables like ‘characterset%’;
+————————–+—————————-+
| 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 | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.01 sec)
mysql> show variables like ‘collation_%’;
+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+
3 rows in set (0.01 sec)
这个相信大家在网上都会找到,所以这里就不细说了。
接下来我要说的这两个小问题使网上十分钟少见的,希望可以帮助到大家。
首先是建表示的问题。我们都知道建表的时候会注意字段,但是只是这样是不够的,应该还要注意一个地方,那就是这里:

这里写图片描述

当我们的字段类型为“varchar”的时候就一定要注意下面的默认选项的这些值。基本上按照图片上面来填的话不会出什么大问题。
要不然导入数据之后,虽然会出现正常的行数,但是我们所有字段下面的内容全都是空的。
但是正常插入的话是好用的,比如第一行就是我insert into的。
就像这样:
这里写图片描述

这是第一点我们需要注意的地方O(∩_∩)O。
第二个就是导入表的时候,当我们把Excel文件导入到MySQL中的时候,这个才是我要讲的重点。
在网上,我们可以找到怎样将Excel文件导入到MySQL中去。但是大部分的博客都忽略了一个问题,那就是保存文件时候的格式。
这里我要重点强调“格式”这件事情,因为在下就是因为这个格式这件事情而被坑到了骨头里。
当我们编辑好文件后会选择保存,我想大部分人都会选择直接保存。
好吧,只有我是。
大家一定要注意了,这个保存可不是直接保存,而是要选择格式的,如果想要修改文件的格式一定不能只修改文件后面的拓展名。
下面我来给大家来几张图片:

这里写图片描述

如果不这样做的话,会传进去空值、null、0什么的,总之就是没有值。
比如:
这里写图片描述

这里面的0 ,并不是我在文件中写入的数字:
这里写图片描述

这是我在表中所添加的内容。
基本上这样操作之后再从网上覆制粘贴SQL就可以了:
LOAD DATA LOCAL INFILE ‘D:/java/444.csv’ INTO TABLE haha FIELDS TERMINATED BY ‘,’LINES TERMINATED BY ‘\n’;
D:/java/444.csv:本地文件路径!!!!
到这里导入文件的时候却依然不好使,文件是倒进去了,但是却会出现乱码。

这里写图片描述

这里给大家推荐一款软件叫做“UE”,这个工具基本上是我们办公屋子里面必备的一款软件,当然其他的软件也可以,比如Notepad++,一个非常可爱的变色龙。
出向上面这种情况是因为文件的编码格式不对,并不是utf-8,所以我们要用各种文本编辑器之类的软件来用它转转换格式。
这里小生就用“UE”这个软件来句一个例子:
首先,我们右键Excel文件,然后用“UE”打开,之后—->>高级—->>转换—>>转成utf-8,之后我们再次倒入文件就可以了。
既不会出现乱码,也不会出现传空值这种情况出现。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章