将Excel文件中的数据导入到mysql【Excel中拼sql】

一.方法1 利用excel本身的命令实现:(CONCATENATE

思路大概为:

将excel文件中的数据转换成sql文件;

把sql在MySQL中执行;


145921_UGFJ_1394041.png

(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());")

其中table_name表示你要插入的表,id,parent_id等为数字类型,name,pinyin为字符串类型,拼接的方法有点差别。

(2)鼠标点住C1单元格的右下角一直拖拽下去,为所有要执行sql语句的行插入上述公式。

(3)复制C列的内容到sql文件中,如下图

145921_Qf9Z_1394041.png

(4)将sql文件导入到mysql中执行,我们可以采用两种方式。

1)采用命令行的方式

进入mysql控制台后,使用命令source example.sql,或者直接执行

mysql -u用户名 -p密码 -D数据库<example.sql

2)如果安装了mysql客户端,可以新建Scrip文件,导入sql文件执行,如图:

145921_KetX_1394041.png


二.方法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表示一个个要连接起来的文本。

151824_pzPa_1394041.png

151826_nOJH_1394041.png

151827_ei1E_1394041.png

151828_TxK5_1394041.png


转载于:https://my.oschina.net/xsh1208/blog/470245

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值