導(dǎo)入Excel文件到MySQL數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)表導(dǎo)出為MySQL

Mysql的標(biāo)志就是小海豚哦

寫在前面

有很久都沒(méi)更新博客了,主要是因?yàn)樽罱丶伊擞悬c(diǎn)懶(不為自己找借口)。今天被姐姐拉去當(dāng)做苦力做事,需要做的事有點(diǎn)小麻煩,處理一張很大的表,將表中的數(shù)據(jù)按照分類單獨(dú)導(dǎo)出為一個(gè)表。我嫌棄復(fù)制太麻煩了就覺(jué)得用數(shù)據(jù)庫(kù)可以實(shí)現(xiàn),這里說(shuō)的是將Excel導(dǎo)入MySQL,當(dāng)然也有導(dǎo)出。

說(shuō)一下前置條件

時(shí)間:2019年7月12日00:10:06
數(shù)據(jù)庫(kù)版本:5.7.25-0ubuntu0.18.04.2

  • 解釋說(shuō)明一下:我是在Windows下安裝了Linux子系統(tǒng),然后在Ubuntu中安裝的數(shù)據(jù)庫(kù)。其實(shí)這個(gè)不影響,只要你安裝了工具,能夠連接到數(shù)據(jù)庫(kù)我想裝在哪里都無(wú)所謂。

輔助工具:Navicat for MySQL

  • 解釋說(shuō)明:Navicat簡(jiǎn)直是神器,懂的當(dāng)然懂。然后其實(shí)導(dǎo)出有命令,導(dǎo)入我沒(méi)有嘗試過(guò),后面試過(guò)了再說(shuō)。

開(kāi)始操作

先連接上數(shù)據(jù)庫(kù),然后呢點(diǎn)擊導(dǎo)入向?qū)?/code>,可以看到很多的選項(xiàng),我們選擇Excel然后點(diǎn)擊下一步。

ZR4ESH.png
然后選擇導(dǎo)入的Excel的位置下面的表記得勾選上,然后下一步:
ZR4Z6A.png
這里我們?cè)O(shè)計(jì)導(dǎo)入的格式,選擇字段開(kāi)始的行,就是你想要這個(gè)表呈現(xiàn)的樣子,也叫列名還有就是指明你的數(shù)據(jù)從哪一行開(kāi)始的,其他的默認(rèn),然后下一步
ZR4KTf.png

然后就是下一步下一步下一步,可以看到一個(gè)這個(gè)圖點(diǎn)擊開(kāi)始就好:
ZR4YXn.png

等待一下,就OK了。我沒(méi)遇到過(guò)錯(cuò)誤(就是這么理直氣壯),看一下結(jié)果的樣子
ZR420x.png
ZR4R76.png
OK了,現(xiàn)在可以開(kāi)始使用SQL語(yǔ)句快速的查找統(tǒng)計(jì)以及干你想要的事情了。

中間來(lái)點(diǎn)小甜點(diǎn)

在幫我姐做事的時(shí)候需要我把一些數(shù)據(jù)單獨(dú)生成一張表,這里就順便提一下如何使用SQL命令將查詢出來(lái)的結(jié)果創(chuàng)建一張新的表,我就用我這個(gè)了:

CREATE TABLE 隊(duì)員(SELECT * FROM Sheet1 WHERE 角色="組員" );

解釋:

  • 其實(shí)就是將查詢的結(jié)果創(chuàng)建新的表,然后呢這里面有中文,你最好保證你的數(shù)據(jù)庫(kù)編碼風(fēng)格是支持中文的,然后最好是別用中文。我這里只是示范一下如果確實(shí)要用中文怎么辦,表名中文是不用加引號(hào)的,后面的值當(dāng)然是要加的。

這樣創(chuàng)建的表格式和原來(lái)的表結(jié)構(gòu)一樣,表頭什么都是一樣的。


ZR5ngJ.png

現(xiàn)在來(lái)導(dǎo)出

用工具導(dǎo)出來(lái)

所有的操作都搞完了,你想要的數(shù)據(jù)單獨(dú)是一張表了,我們被要求給別人看到是Excel而不是數(shù)據(jù)庫(kù)。那我們就將它導(dǎo)出來(lái)吧。看到前面那個(gè)導(dǎo)入向?qū)?/code>旁邊的導(dǎo)出向?qū)?/code>了嗎?我們需要的就是那個(gè),點(diǎn)擊,選擇Excel,然后選擇你需要導(dǎo)出的表和選擇保存路徑然后下一步、再下一步。這個(gè)時(shí)候如果你是需要表頭的那么你需要勾選上包含列的標(biāo)題然后下一步后點(diǎn)擊開(kāi)始(太多圖重復(fù),就不放圖了,多了看起來(lái)不舒服)。等待一下,就完成了。還是那句話我沒(méi)遇到過(guò)錯(cuò)誤(就是這么理直氣壯)。

命令行來(lái)一個(gè)

MySQL中導(dǎo)出數(shù)據(jù)是有命令的,我也試過(guò)了。然后如果你沒(méi)有工具又想導(dǎo)出,那就使用命令行吧。有人這樣說(shuō)過(guò):

命令行是程序員的浪漫 ——我說(shuō)的

簡(jiǎn)單介紹一下命令

select * from tablename into outfile "filepath and file extension"

intooutfile是關(guān)鍵詞,然后雙引號(hào)里面是文件路徑和文件名(包括后綴)。然后你開(kāi)始執(zhí)行,會(huì)發(fā)現(xiàn)不得行,報(bào)錯(cuò)了:

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

這是為啥呢?是因?yàn)镸ySQL導(dǎo)出文件有限制,除了保存到它規(guī)定的文件夾路徑下以外都是不被允許的。我們當(dāng)然不喜歡這個(gè)規(guī)定,于是我們打算修改它。找到你的mysql的配置文件,叫做my.cnf的,在其中加上這樣一句話:

secure_file_priv=''

然后重啟你的MySQL,就可以使用上面的命令將你想要導(dǎo)出的表保存到你想要的位置了。
這樣保存出來(lái)的表有一個(gè)問(wèn)題,那就是沒(méi)有表頭,這是為什么我還沒(méi)搞懂,后面有時(shí)間研究。

寫在后面

我寫這個(gè)的時(shí)候在凌晨,如果有錯(cuò)誤的地方歡迎你的指出。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容