本文目錄一覽:
如何把csv文件批量導入到mysql數據庫
通過命令行導入(要求列與列之間以 英文逗號 分割,若字段中含有 , 則以 ” 包裹)
load data infile ‘D:/mysql-5.7.29-winx64/files/ratings_5.csv’ into table ratings fields terminated by ‘,’ optionally enclosed by ‘”‘ escaped by ‘”‘ lines terminated by ‘\r\n’;
踩坑一:文件路徑用 \ 分割會報錯,用 / 可(用 \\ 應該也可)
踩坑二:load data 命令報錯
ERROR 1290 (HY000): The MySQL server is running with the –secure-file-priv option so it cannot execute this statement
在 my.ini 中加入(空字符串代表允許從一切目錄導入)
[mysqld]
secure-file-priv=”
然後再 Windows 的服務中重新啟動 mysql
踩坑三:csv 文件中第一行是諸如 userId 這樣的列名
如果你的 csv 文件不大,直接使用 notepad++ 打開後刪除第一行即可
但在我們這裡,千萬級別的文件 notepad++ 無法打開,這時可以考慮兩種方法
1. 將 csv 文件傳入 Linux 服務器刪去第一行
由於不知道如何在 Win 10 中做這個操作,只能通過 Linux 中轉執行
sed -i ‘1d’ ratings.csv
檢驗是否成功,可以打印出第一行觀察
cat ratings.csv | head -n 1
2. 通過工具把大的 csv 分成多個 notepad 能夠打開的較小文件,對第一個文件刪除第一行並依次導入
工具:splitcsv
親測 5000000 條數據的 csv 文件可以在 notepad++ 中打開(只能同時打開 3 個)
這個工具還有個小坑:ratings_0.csv 的最後一行和 ratings_1.csv 的第一行是重複的,請手動刪除
如何把CSV導入mysql數據庫
導入操作
存在特殊字符情況的處理
Book1.csv
編號,名稱,說明
1,測試數據1,”測試CSV文件中,有逗號”
2,測試數據2,”測試CSV文件中有””雙引號”””
3,測試數據3,”測試CSV文件中,有逗號和””雙引號”””
4,測試數據4,普通數據
mysql CREATE TABLE Test_Book1 (
– id int,
– name VARCHAR(10),
– data VARCHAR(100)
– );
Query OK, 0 rows affected (0.05 sec)
下面的 lines terminated by ‘\r\n’ 是 要求換行符號,為 windows的換行
下面的 ignore 1 lines是 忽略第一行的標題行。
mysql LOAD DATA INFILE ‘f:/Book1.csv’
– INTO TABLE Test_Book1
– FIELDS TERMINATED BY ‘,’
– OPTIONALLY ENCLOSED BY ‘”‘
– lines terminated by ‘\r\n’
– ignore 1 lines
– (id, name, data);
Query OK, 4 rows affected (0.00 sec)
Records: 4 Deleted: 0 Skipped: 0 Warnings: 0
mysql select * from test_book1;
+——+———–+——————————–+
| id | name | data |
+——+———–+——————————–+
| 1 | 測試數據1 | 測試CSV文件中,有逗號 |
| 2 | 測試數據2 | 測試CSV文件中有”雙引號” |
| 3 | 測試數據3 | 測試CSV文件中,有逗號和”雙引號” |
| 4 | 測試數據4 | 普通數據 |
+——+———–+——————————–+
4 rows in set (0.00 sec)
如何將csv導入到mysql數據庫
如果你想在Windows下面把.csv文件導入MySQL數據庫,那麼請看。在命令提示符下面,打入:mysqlimport –fields-optionally-enclosed-by=””” –fields-terminated-by=, –lines-terminated-by=”\r\n” –user=YOUR_USERNAME –password YOUR_DATABASE YOUR_TABLE.csv上面的選項可謂見名知意,包括各域的符號為(“);各域分隔符為(,);DOS下的回車換行符為\r\n;然後是用戶名,提示輸入密碼,YOUR_DATABASE換成你的數據庫名,YOUR_TABLE你的表名,文件最好和表名一致,當然表名可以更改。如果你想略掉某些行,你可以加入–ignore-lines=X選項,X就是你要略掉的行的序數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/312957.html