国产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
主站蜘蛛池模板: 国产v精品成人免费视频400条 | 亚洲精品乱码久久久久久中文字幕 | 在线 | 一区二区三区 | 免费爱爱视频网站 | 中文字幕日韩欧美 | 日韩网站在线观看 | 国产欧美日韩在线不卡第一页 | 国产精品亚洲精品观看不卡 | 一区在线播放 | 欧美成人禁片在线观看网址 | 国产日韩欧美精品在线 | 婷婷久草 | 欧美日韩国产一区二区三区播放 | 国内精品自产拍在线观看91 | 免费看日产一区二区三区 | 国产成人精品视频 | 日本a级精品一区二区三区 日本不卡视频一区二区三区 | 久久精品美女 | 最新国产视频 | 国产成人精品一区二区三在线观看 | 高清在线一区二区 | 欧美第3页| 国产精品一区二区三区四区五区 | 一本久久道| 久久亚洲精品国产精品婷婷 | 日韩经典第一页 | 国产一级特黄全黄毛片 | 国产成人精品一区二三区2022 | 91原创在线| www.亚洲一区 | 成人a区| 日韩精品网站 | 亚洲男同网站 | 日韩www视频 | 亚洲看片 | 日韩伦理亚洲欧美在线一区 | 亚洲va国产va欧美va综合 | 日韩欧美亚洲国产高清在线 | 亚洲 国产 日韩 欧美 | 欧美日韩亚洲综合另类ac | 久久精品无码一区二区日韩av |