把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,之後我們再次倒入文件就可以了。
既不會出現亂碼,也不會出現傳空值這種情況出現。

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