linux脚本实现excel文件内容读取到数据库

linux读取excel转化为SQL插入语句

假设我现在有一个表,需要插入excel的数据

创建表的代码如下

CREATE TABLE student(
	sid VARCHAR(10),
	sname VARCHAR(20),
	sgender CHAR(1),
	sage INT
)

现在要从excel导入数据

linux脚本实现excel文件内容读取到数据库

首先我们可以把数据转化成csv或者txt,这里我用csv做例子

linux脚本实现excel文件内容读取到数据库

查看这个文件

linux脚本实现excel文件内容读取到数据库

可以看到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键

是追加重定向

linux脚本实现excel文件内容读取到数据库

需要加可执行的权限

chmod u+x stu.sh 

执行代码

./stu.sh < stu.CSV 
cat stu.sql

linux脚本实现excel文件内容读取到数据库

可以发现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文件就插入到了表中。

以上所有文件点这里下载

linux脚本实现excel文件内容读取到数据库

上一篇:数据库-单表查询


下一篇:InnoDB -- Next-Key Lock