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文件就插入到了表中。
以上所有文件點這里下載