国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

使用bash將csv文件數據讀寫到MySQL數據庫的腳本之一_MySQL

來源:懂視網 責編:小采 時間:2020-11-09 20:07:15
文檔

使用bash將csv文件數據讀寫到MySQL數據庫的腳本之一_MySQL

使用bash將csv文件數據讀寫到MySQL數據庫的腳本之一_MySQL:  情景: 有一個包含多個系的學生詳細信息的csv文件,需要將文件的內容插入到一個數據表中,保證每一個系生成一個單獨的排名列表。 學習信息表 studentdata.csv 文件的數據如下: 1,Navin M,98,CS 2,Kavya N,70,
推薦度:
導讀使用bash將csv文件數據讀寫到MySQL數據庫的腳本之一_MySQL:  情景: 有一個包含多個系的學生詳細信息的csv文件,需要將文件的內容插入到一個數據表中,保證每一個系生成一個單獨的排名列表。 學習信息表 studentdata.csv 文件的數據如下: 1,Navin M,98,CS 2,Kavya N,70,

情景:
有一個包含多個系的學生詳細信息的csv文件,需要將文件的內容插入到一個數據表中,保證每一個系生成一個單獨的排名列表。

學習信息表 studentdata.csv 文件的數據如下:

1,Navin M,98,CS
2,Kavya N,70,CS
3,Nawaz O,80,CS
4,Hari S,80,EC
5,Alex M,50,EC
6,Neenu J,70,EC
7,Bob A,30,EC
8,Anu M,90,AE
9,Sruthi,89,AE
10,Andrew,89,AE


腳本思路
這個問題有兩種處理思路,從shell腳本的角度看,可以用sort,awk等bash工具解決,也可以用一個sql數據庫的數據表也可以解決。
下面需要編寫3個腳本,分別用于創(chuàng)建數據庫及數據表、想數據表中插入學生數據、從數據表中讀取并顯示處理過的數據。

注意:下面腳本中mysql數據連接的user,pass,socket等變量是我測試環(huán)境中的連接,在使用腳本時可以根據情況修改;
另外對于實際導入的csv格式和行數不同,可以對照進行腳本中的數據庫名、表名、列名進行修改,這樣這三個腳本就可以解決這一類問題了。


腳本一、創(chuàng)建數據庫及數據表的腳本如下:

#!/bin/bash
#filename : create_db.sh
#use : create mysql database and tables

USER="root"
PASS="123456"
SOCKET="/data/mysqldata/3306/mysql.sock"

mysql -u $USER -p$PASS -S $SOCKET < /dev/null
create database students;
EOF

[ $? -eq 0 ] && echo Created DB || echo DB already exist
mysql -u $USER -p$PASS -S $SOCKET students < /dev/null
create table students(
id int,
name varchar(100),
mark int,
dept varchar(4)
);
EOF

[ $? -eq 0 ] && echo Created table students || echo Table students already exist

mysql -u $USER -p$PASS -S $SOCKET students <

腳本二、將數據插入數據表的腳本如下:

#!/bin/bash
#filename : write_to_db.sh
#use : read data from csv files and insert into mysql db

USER="root"
PASS="123456"
SOCKET="/data/mysqldata/3306/mysql.sock"

if [ $# -ne 1 ];
then
 echo $0 DATAFILE
 echo
 exit 2
fi
data=$1

while read line;
do
 oldIFS=$IFS
 IFS=,
 values=($line)
 values[1]="\"`echo ${values[1]} | tr ' ' '#' `\""
 values[3]="\"`echo ${values[3]}`\""

 query=`echo ${values[@]} | tr ' #' ', ' `
 IFS=$oldIFS
 
 mysql -u $USER -p$PASS -S $SOCKET students <

腳本三、查詢數據庫的腳本如下:

#!/bin/bash
#filename: read_db.sh
#use : read data from mysql db

USER="root"
PASS="123456"
SOCKET="/data/mysqldata/3306/mysql.sock"

depts=`mysql -u $USER -p$PASS -S $SOCKET students <

腳本按照順序執(zhí)行結果如下:

# chmod +x create_db.sh write_to_db.sh read_db.sh
# ./create_db.sh 
DB already exist
Table students already exist
# 
# ./write_to_db.sh studentdata.csv 
Wrote data into DB
# 
# ./read_db.sh 
Department : CS
rank name mark
1 Navin M 98
2 Nawaz O 80
3 Kavya N 70

Department : EC
rank name mark
1 Hari S 80
2 Neenu J 70
3 Alex M 50
4 Bob A 30

Department : AE
rank name mark
1 Anu M 90
2 Sruthi 89
3 Andrew 89

在MySQL數據庫中確認插入后結果:

mysql> 
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| students |
| test |
+--------------------+
5 rows in set (0.00 sec)

mysql> 
mysql> use students;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> 
mysql> show tables;
+--------------------+
| Tables_in_students |
+--------------------+
| students |
+--------------------+
1 row in set (0.00 sec)

mysql> 
mysql> select * from students;
+------+---------+------+------+
| id | name | mark | dept |
+------+---------+------+------+
| 1 | Navin M | 98 | CS |
| 2 | Kavya N | 70 | CS |
| 3 | Nawaz O | 80 | CS |
| 4 | Hari S | 80 | EC |
| 5 | Alex M | 50 | EC |
| 6 | Neenu J | 70 | EC |
| 7 | Bob A | 30 | EC |
| 8 | Anu M | 90 | AE |
| 9 | Sruthi | 89 | AE |
| 10 | Andrew | 89 | AE |
+------+---------+------+------+
10 rows in set (0.00 sec)

mysql> 

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

使用bash將csv文件數據讀寫到MySQL數據庫的腳本之一_MySQL

使用bash將csv文件數據讀寫到MySQL數據庫的腳本之一_MySQL:  情景: 有一個包含多個系的學生詳細信息的csv文件,需要將文件的內容插入到一個數據表中,保證每一個系生成一個單獨的排名列表。 學習信息表 studentdata.csv 文件的數據如下: 1,Navin M,98,CS 2,Kavya N,70,
推薦度:
標簽: 文件 數據庫 腳本
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美日韩中文字幕在线 | 精品欧美一区二区三区免费观看 | 日韩中文字幕第一页 | 精品国产乱码一区二区三区麻豆 | 亚洲欧美天堂网 | 国产一区二区三区免费 | 亚洲一区二区三区在线 | 中文字幕免费 | 伊人精品成人久久综合欧美 | 91久久综合九色综合欧美98 | 亚洲 欧美 自拍 另类 欧美 | 亚洲视频欧洲视频 | 国产精品亚洲国产三区 | 成人精品在线视频 | 日韩国产欧美一区二区三区 | 在线视频欧美日韩 | 亚洲欧美v | 欧美福利视频 | 九九九国产在线 | 亚洲国产精品成人综合久久久 | 亚洲 自拍 另类 欧美 综合 | 日韩高清欧美 | 国产亚洲欧美在线人成aaaa | 国产视频首页 | 亚洲精品在线免费观看 | 一级毛片不卡片免费观看 | 亚洲欧美激情在线 | 欧美日本一区二区三区 | 香蕉依人 | 日韩经典在线 | 成人a毛片久久免费播放 | 中文国产成人精品久久一 | 国产欧美一区二区精品性色 | 俄罗斯女人禽交zozo | 一级大黄毛片 | 婷婷在线视频观看 | 国产资源视频在线观看 | 亚洲午夜一区 | 欧美日韩高清在线 | 欧美精品福利 | 国产精品美女久久久久网站 |