將Excel文件中的數據導入到mysql【Excel中拼sql】

一.方法1 利用excel自己的命令實現:(CONCATENATE

思路大概爲:mysql

將excel文件中的數據轉換成sql文件;sql

把sql在MySQL中執行;數據庫


(1)如圖所示,咱們在excel中執行以下語句函數

=CONCATENATE("insert into table_name (id,parent_id,NAME,pinyin,STATUS,LEVEL,seq,create_by,create_date,update_by,update_date) values(",A2,",",B2,",'",C2,"','",D2,"',1,",E2,",",F2,",'system',NOW(),'system',NOW());")spa

其中table_name表示你要插入的表,id,parent_id等爲數字類型,name,pinyin爲字符串類型,拼接的方法有點差異。命令行

(2)鼠標點住C1單元格的右下角一直拖拽下去,爲全部要執行sql語句的行插入上述公式。excel

(3)複製C列的內容到sql文件中,以下圖code

(4)將sql文件導入到mysql中執行,咱們能夠採用兩種方式。
orm

1)採用命令行的方式ip

進入mysql控制檯後,使用命令source example.sql,或者直接執行

mysql -u用戶名 -p密碼 -D數據庫<example.sql

2)若是安裝了mysql客戶端,能夠新建Scrip文件,導入sql文件執行,如圖:


二.方法2 利用腳本實現,在這裏使用perl【不詳細說】

首先將excel的數據複製到文本文件file_input中,而後執行以下腳本便可。

#!/usr/bin/perl

use  strict;

use warnings;

my $file = "input_file";

open FILE_INPUT $file;

open FILE_OUTPUT ">output_file";

while(<FILE_INPUT>)

{

    chomp;

   #由於個人文件中(如上圖)只有兩列,因此我只採用兩個參數保存切割結果,

   #採用多個空格(\s+)做爲切割標準   

   my($input1,$input2) = split(/\s+/, $_);

   print FILE_OUTPUT "insert into table_name \(col1,col2\) values\(\"$input1\",\"$input2\"\)";

}

close FILE_INPUT;

close FILE_OUTPUT;


三.concatenate函數使用方法

CONCATENATE是一個文本鏈接函數

語法:CONCATENATE(text1,text2,text3......)

其中text表示一個個要鏈接起來的文本。


相關文章
相關標籤/搜索