MySQL將CSV文件快速導入MySQL中的實現
一般來說,將csv文件導入mysql數據庫有兩種辦法:
- 使用 navicat、workbench 等軟件中的導入向導手動導入;
- 使用
load data infile
命令導入
前者速度較慢,適合數據量比較小的時候,而對于大文件,我們需要使用命令行導入。
方法一:使用navicat等軟件的導入向導
打開安裝好的Navicat Premium,連接數據庫。
成功連接后如下圖:
創(chuàng)建數據庫
點擊“方向導入”
選擇需要導入的文件類型
選擇需要導入文件的路徑
查看導入的表結構是否正確
導入成功
如果出現中文亂碼
解決方案:
將原來存儲在桌面上的 OrderData 文件通過 Notepad++ 進行轉碼,格式為 UTF-8 點擊OrderDaTa.csv, 右鍵用 Notepad++ 打開,修改編碼。
重新導入數據
點擊開始按鈕,數據導入中…
方法二:命令行導入(LOAD DATA INFILE SQL)
準備工作
在mysql中將表結構先建好,包括字段名及類型等
假設你的 CSV 文件包含圖書信息,分為 ISBN、Title、Author 和 ListPrice 字段。要創(chuàng)建這樣一個表,你需要執(zhí)行這樣的命令。
CREATE TABLE BooksCSV ( ISBN VARCHAR(255) NULL, title VARCHAR(255) NULL, author VARCHAR(255) NULL, ListPrice VARCHAR(255) NULL );
兩個建議:
- 建議所有的字段都接納 NULL 值,并且表沒有主鍵,因為事先并不知道 CSV 文件中的數據是否完整和規(guī)范。
- 即使是數字數據,也只使用 VARCHAR 字段,以防止文件中的數據格式不正確而導致處理錯誤。導入數據后,可以直接在數據庫中進行清理,讀取表的數,并進行必要的驗證和修正。
使用如下命令查看是否允許從外部路徑導入文件
show variables like '%secure%';
如果結果顯示secure_file_priv=‘’,即空字符串,則無需改動;如果secure_file_priv=null,則需要在mysql的配置文件my.ini中添加如下行secure_file_priv=‘’,之后重啟mysql服務。
使用如下命令查看是否允許本地導入
show variables like 'local_infile';
如果結果是off,則改使用如下命令改為on
set global local_infile=on;
導入文件
使用如下命令導入文件。注意:文件路徑不能有中文!!
load data local infile 'file_path' # 文件路徑 into table daily_price # 表名 character set utf8 # 編碼 fields terminated by ',' # 分隔符 lines terminated by '\r\n' # 換行符,windows下是\r\n ignore 1 lines; # 忽略第一行,因為表頭已建好
其他有關load data infile的細節(jié)可在此地址查詢
https://www.mysqlzh.com/doc/126/255.html
到此這篇關于MySQL將CSV文件快速導入MySQL中的實現的文章就介紹到這了,更多相關MySQL CSV導入MySQL內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL實現差集(Minus)和交集(Intersect)測試報告
MySQL沒有實現Minus和Intersect功能,就像它也沒有實現cube的功能一樣。2014-06-06mysql Access denied for user ‘root’@’localhost’ (using passw
這篇文章主要介紹了mysql Access denied for user ‘root’@’localhost’ (using password: YES)解決方法,本文給出詳細的解決步驟及操作注釋,需要的朋友可以參考下2015-07-07一臺電腦(windows系統(tǒng))安裝兩個版本MYSQL方法步驟
由于新舊項目數據庫版本差距太大,編碼格式不同,引擎也不同,所以只好裝兩個數據庫,這篇文章主要給大家介紹了關于一臺電腦(windows系統(tǒng))安裝兩個版本MYSQL的方法步驟,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-03-03