MySQL將CSV文件快速導(dǎo)入MySQL中的實(shí)現(xiàn)
一般來(lái)說(shuō),將csv文件導(dǎo)入mysql數(shù)據(jù)庫(kù)有兩種辦法:
- 使用 navicat、workbench 等軟件中的導(dǎo)入向?qū)謩?dòng)導(dǎo)入;
- 使用
load data infile命令導(dǎo)入
前者速度較慢,適合數(shù)據(jù)量比較小的時(shí)候,而對(duì)于大文件,我們需要使用命令行導(dǎo)入。
方法一:使用navicat等軟件的導(dǎo)入向?qū)?/h2>
打開(kāi)安裝好的Navicat Premium,連接數(shù)據(jù)庫(kù)。
成功連接后如下圖:

創(chuàng)建數(shù)據(jù)庫(kù)

點(diǎn)擊“方向?qū)?rdquo;

選擇需要導(dǎo)入的文件類型

選擇需要導(dǎo)入文件的路徑

查看導(dǎo)入的表結(jié)構(gòu)是否正確

導(dǎo)入成功

如果出現(xiàn)中文亂碼
解決方案:
將原來(lái)存儲(chǔ)在桌面上的 OrderData 文件通過(guò) Notepad++ 進(jìn)行轉(zhuǎn)碼,格式為 UTF-8 點(diǎn)擊OrderDaTa.csv, 右鍵用 Notepad++ 打開(kāi),修改編碼。

重新導(dǎo)入數(shù)據(jù)

點(diǎn)擊開(kāi)始按鈕,數(shù)據(jù)導(dǎo)入中…

方法二:命令行導(dǎo)入(LOAD DATA INFILE SQL)
準(zhǔn)備工作
在mysql中將表結(jié)構(gòu)先建好,包括字段名及類型等
假設(shè)你的 CSV 文件包含圖書(shū)信息,分為 ISBN、Title、Author 和 ListPrice 字段。要?jiǎng)?chuàng)建這樣一個(gè)表,你需要執(zhí)行這樣的命令。
CREATE TABLE BooksCSV (
ISBN VARCHAR(255) NULL,
title VARCHAR(255) NULL,
author VARCHAR(255) NULL,
ListPrice VARCHAR(255) NULL
);
兩個(gè)建議:
- 建議所有的字段都接納 NULL 值,并且表沒(méi)有主鍵,因?yàn)槭孪炔⒉恢?CSV 文件中的數(shù)據(jù)是否完整和規(guī)范。
- 即使是數(shù)字?jǐn)?shù)據(jù),也只使用 VARCHAR 字段,以防止文件中的數(shù)據(jù)格式不正確而導(dǎo)致處理錯(cuò)誤。導(dǎo)入數(shù)據(jù)后,可以直接在數(shù)據(jù)庫(kù)中進(jìn)行清理,讀取表的數(shù),并進(jìn)行必要的驗(yàn)證和修正。
使用如下命令查看是否允許從外部路徑導(dǎo)入文件
show variables like '%secure%';
如果結(jié)果顯示secure_file_priv=‘’,即空字符串,則無(wú)需改動(dòng);如果secure_file_priv=null,則需要在mysql的配置文件my.ini中添加如下行secure_file_priv=‘’,之后重啟mysql服務(wù)。
使用如下命令查看是否允許本地導(dǎo)入
show variables like 'local_infile';
如果結(jié)果是off,則改使用如下命令改為on
set global local_infile=on;
導(dǎo)入文件
使用如下命令導(dǎo)入文件。注意:文件路徑不能有中文??!
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; # 忽略第一行,因?yàn)楸眍^已建好
其他有關(guān)load data infile的細(xì)節(jié)可在此地址查詢
https://www.mysqlzh.com/doc/126/255.html
到此這篇關(guān)于MySQL將CSV文件快速導(dǎo)入MySQL中的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL CSV導(dǎo)入MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL實(shí)現(xiàn)差集(Minus)和交集(Intersect)測(cè)試報(bào)告
MySQL沒(méi)有實(shí)現(xiàn)Minus和Intersect功能,就像它也沒(méi)有實(shí)現(xiàn)cube的功能一樣。2014-06-06
mysql Access denied for user ‘root’@’localhost’ (using passw
這篇文章主要介紹了mysql Access denied for user ‘root’@’localhost’ (using password: YES)解決方法,本文給出詳細(xì)的解決步驟及操作注釋,需要的朋友可以參考下2015-07-07
MySQL?分庫(kù)分表的項(xiàng)目實(shí)踐
當(dāng)用戶量級(jí)上升,寫請(qǐng)求越來(lái)越多,這時(shí)需要用到分庫(kù)分表,本文就介紹了MySQL?分庫(kù)分表的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2022-04-04
Mysql優(yōu)化order by語(yǔ)句的方法詳解
本篇文章我們將了解ORDER BY語(yǔ)句的優(yōu)化,在文中給大家提到了mysql中的兩種排序方式,需要的朋友參考下吧2018-08-08
教你如何恢復(fù)使用MEB備份的MySQL數(shù)據(jù)庫(kù)
這篇文章主要介紹了教你如何恢復(fù)使用MEB備份的MySQL數(shù)據(jù)庫(kù)的具體方法,需要的朋友可以參考下2016-09-09
一臺(tái)電腦(windows系統(tǒng))安裝兩個(gè)版本MYSQL方法步驟
由于新舊項(xiàng)目數(shù)據(jù)庫(kù)版本差距太大,編碼格式不同,引擎也不同,所以只好裝兩個(gè)數(shù)據(jù)庫(kù),這篇文章主要給大家介紹了關(guān)于一臺(tái)電腦(windows系統(tǒng))安裝兩個(gè)版本MYSQL的方法步驟,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03

