當前位置:首頁 » 數據倉庫 » 將csv導入mysql資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

將csv導入mysql資料庫

發布時間: 2022-10-07 21:16:03

1. 如何把取得的CSV數據,存入到Mysql資料庫

CSV
格式導入到MYSQL中。
執行語句:
load
data
infile
'你的CSV文件路徑'
into
table
你的表
fields
terminated
by
','
lines
terminated
by
'\n';
實例:
庫:pc2phone
表:cms_rate
文件路徑:C:/A-Z.csv
一:Xls轉化(另存)為
.csv格式(A-Z.csv)。存放到C盤根目錄下
二:MySQL
Command
Line
Client執行操作。
1:
mysql>
use
pc2phone;
Database
Changed
2:
mysql>
load
data
infile
'C:/A-Z.csv'
into
table
cms_rate
fields
terminated
by
','
lines
terminated
by
'\n';
如果編碼正確,導入成功!
如果出現下邊情況,則說明編碼格式錯誤。需要對C:/A-Z.csv文件的編碼進行轉換。
ERROR
1366
<hy000>:Incorrect
string
value:
'\xB9\xFA\xBC\xCA\xB3\xA4...'
for
column
'rate_type'
at
row
1

2. 怎麼往mysql資料庫中導入csv數據

ysql自己有個csv引擎,可以通過這個引擎來實現將csv中的數據導入到mysql資料庫中,並且速度比通過php或是python寫的批處理程序快的多。
具體的實現代碼示例:

代碼如下:

load data infile '/tmp/file.csv' into table _tablename (set character utf8)
fields terminated by ','
enclosed by '"'
lines terminated by '\r\n';

這段代碼中涉及的一些關鍵字的解釋如下:
fields terminated by '':這是指出csv文件中欄位終止符,也就是數據之間的分隔符;
enclosed by '':指出封套符;
lines terminated by '':指行終止符
在csv文檔(RFC4180)中詳細介紹了csv的格式,其中的要點有:
(1)欄位之間以「,」(逗號)間隔,數據行之間使用\r\n分隔;
(2)字元串以半形雙引號包圍,字元串本身的雙引號用兩個雙引號表示。
通過以上的解釋,詳細對於數據導入代碼應該有更好的理解了。
同樣的,csv數據能夠導入mysql資料庫中,mysql中的數據表也能導出csv文件,導出的代碼示例:

代碼如下:

select * from tablename into outfile '/tmp/data.txt'
fields terminated by ','
optionally enclosed by '"'
lines terminated by '\n';

當將資料庫中的數據導出到文件後,要再將數據導入到資料庫中,必須遵守導出時的文件中定義的格式。

3. 如何將.csv文件導入MySql資料庫中

1、LOAD DATA通過讀取本地文件系統上的文件,可以將大量數據添加到資料庫中。
mysql> USE db1;
mysql> LOAD DATA INFILE 『datafile.txt』 INTO TABLE db2.table_name;
2、mysqlimport命令直接從文件讀取批量數據。它相當於LOAD DATA語句的一個介面。
mysqlimport根據文件名導入表名,即將文件名第一個圓點前的所有字元作為表名。例如,文件class.txt被裝入class表中。
mysqlimport -L -uroot -proot db01 table_name.txt;
3、假如你原來表為T1表,數據導入到了T2表。可以用
insert into T1 select * from T2;

4. 如何把取得的CSV數據,存入到MySQL資料庫中

CSV
格式導入到MYSQL中。
執行語句:
load
data
infile
'你的CSV文件路徑'
into
table
你的表
fields
terminated
by
','
lines
terminated
by
'\n';
實例:
庫:pc2phone
表:cms_rate
文件路徑:C:/A-Z.csv
一:Xls轉化(另存)為
.csv格式(A-Z.csv)。存放到C盤根目錄下
二:MySQL
Command
Line
Client執行操作。
1:
mysql>
use
pc2phone;
Database
Changed
2:
mysql>
load
data
infile
'C:/A-Z.csv'
into
table
cms_rate
fields
terminated
by
','
lines
terminated
by
'\n';
如果編碼正確,導入成功!
如果出現下邊情況,則說明編碼格式錯誤。需要對C:/A-Z.csv文件的編碼進行轉換。
ERROR
1366
<hy000>:Incorrect
string
value:
'\xB9\xFA\xBC\xCA\xB3\xA4...'
for
column
'rate_type'
at
row
1

5. 如何把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 的第一行是重復的,請手動刪除

6. 如何將csv導入mysql資料庫

經常需要將mysql資料庫中的數據導出到excel表格,或者需要將excel表格數據導入到mysql資料庫,我的方法是先將它們都轉換成一種中間數據格式csv(execl數據可以直接導出為csv格式,csv格式也可以直接用excel打開)。下面介紹一下操作步驟:

csv導入mysql

load data infile 'C:\\Users\\UserName\\Desktop\\test.csv'
into table `table`
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\n';

mysql導入csv

select * from `table`
load data infile 'C:\\Users\\UserName\\Desktop\\test.csv'
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\n';

如果亂碼,可用相關編輯器打開.csv文件,另存為utf-8的csv

7. 怎麼把csv文件導入mysql

mysql導入csv文件,用到的工具phpmyadmin,步驟如下:

  1. 登錄phpmyadmin(以本地localhost/phpmyadmin為示例),輸入資料庫賬號和密碼進行登錄。

注意事項:mysql導出sql文件兼容性比較好。

8. 如何將CSV數據導入MySQL

導入操作

存在特殊字元情況的處理

Book1.csv

編號,名稱,說明
1,測試數據1,"測試CSV文件中,有逗號"
2,測試數據2,"測試CSV文件中有""雙引號"""
3,測試數據3,"測試CSV文件中,有逗號和""雙引號"""
4,測試數據4,普通數據

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

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)