linux读取excel转化为SQL插入语句
假设我现在有一个表,需要插入excel的数据
创建表的代码如下
CREATE TABLE student(
sid VARCHAR(10),
sname VARCHAR(20),
sgender CHAR(1),
sage INT
)
现在要从excel导入数据
首先我们可以把数据转化成csv或者txt,这里我用csv做例子
查看这个文件
可以看到csv是用逗号分隔的
以下是shell脚本
# !/bin/bash
# read file an create INSERT statements for MYSQL
out=‘stu.sql‘
IFS=‘,‘
while read sid sname sgender sage
do
cat >> $out << EOF
INSERT INTO student (sid,sname,sgender,sage)VALUES
(‘$sid‘,‘$sname‘,‘$sgender‘,‘$sage‘);
EOF
done
其中IFS叫做内部字段分隔符(internal field separator),默认是空格换行和tab键
是追加重定向
需要加可执行的权限
chmod u+x stu.sh
执行代码
./stu.sh < stu.CSV
cat stu.sql
可以发现csv文件已经写入到了stu.sql文件之中。
stu.sql文件内容如下
INSERT INTO student (sid,sname,sgender,sage)VALUES
(‘1001‘,‘yangmi‘,‘f‘,‘20
‘);
INSERT INTO student (sid,sname,sgender,sage)VALUES
(‘1002‘,‘pengyueyan‘,‘m‘,‘40
‘);
INSERT INTO student (sid,sname,sgender,sage)VALUES
(‘1003‘,‘huge‘,‘m‘,‘36
‘);
INSERT INTO student (sid,sname,sgender,sage)VALUES
(‘1004‘,‘luhan‘,‘m‘,‘37
‘);
然后运行sql文件就插入到了表中。
以上所有文件点这里下载