shell脚本实现对mysql数据库的增删改查

这两天一直在学习编写shell脚本,然后将自己的学习综合了下写了个操作数据库的小程序,以下是脚本,欢迎大家指正

#!/bin/bash
:<<!
 编写一个执行mysql数据库的小系统,主要实现以下功能:
1.实现连接数据库
2.输出功能菜单:1 插入 2 修改 3 删除 4 查询 5 退出
3.实现以上5个功能
!
# 定义数据库连接变量
mysql_u="root"
mysql_p="******"
#1.打印菜单
function printMenu(){
 echo "=====* 欢迎登陆本系统 *====="
 # 循环此功能
 while true
 do
   echo "=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *====="
   echo "=====* 请选择对应功能的标号,例如:1 *====="
   read choiceFlag
   # 判断菜单选项
   case $choiceFlag in
    1)
      Mysql_Q # 执行查询功能
      ;;
    2)
      Mysql_I # 执行插入功能
      ;;
    3)
      Mysql_U # 执行更新功能
      ;;
    4)
      Mysql_D # 执行删除功能
      ;;
    5)
	  # 退出程序
      echo "=====* 退出成功 *====="
      exit 0
      ;;
    *)
	  # 错误命令提示
      echo "输入指令错误!"
      ;;
    esac
    echo "=====* 是否继续进行操作 Y or N *====="
    read flag  
    if [ $flag = 'N' ]
    then
      echo "=====* 退出成功 *====="
      exit 0
    fi
 done
}
# 2.数据库数据查询
function Mysql_Q(){
  export MYSQL_PWD="$mysql_p"
  sql="select * from shell_one"
  # 连接数据库
  result=`mysql -u$mysql_u << EOF
  use linux;
  $sql;
  quit
EOF`  
# 输出查询结果
  echo "查询结果如下:"
  echo "$result"
}
# 3.数据插入
function Mysql_I(){
  echo "请输入要插入的数据,中间以空格分割:"
  read insertSql
  # 将字符串转化为数组
  arr=($insertSql)
  export MYSQL_PWD="$mysql_p"
  sql="insert into shell_one(sname,sage,sgender,sclass) values ('${arr[0]}',${arr[1]},'${arr[2]}','${arr[3]}')"
  # 连接数据库
  result=`mysql -u$mysql_u << EOF
  use linux;
  $sql;
  quit
EOF`
  # 判断是否执行成功
  if [ $? = 0 ]
  then
    echo "执行成功!"
  else
    echo "执行失败!"
  fi
}
# 4.数据库数据修改
function Mysql_U(){
  echo "请输入要修改的数据ID,以及对应修改后的数据,中间以空格分割:"
  read updateSql
  # 将字符串转化为数组
  arr=($updateSql)
  export MYSQL_PWD="$mysql_p"
  sql="update shell_one set sname='${arr[1]}',sage=${arr[2]},sgender='${arr[3]}',sclass='${arr[4]}' where sid=${arr[0]}"  
# 连接数据库
  result=`mysql -u$mysql_u << EOF
  use linux;
  $sql;
  quit
EOF`
  # 判断是否执行成功
  if [ $? = 0 ]
  then
    echo "执行成功!"
  else
    echo "执行失败!"
  fi
}
# 5.数据删除
function Mysql_D(){
  echo "请输入要删除的数据ID:"
  read delSql
  export MYSQL_PWD="$mysql_p"
  sql="delete from shell_one where sid=${delSql}"
  # 连接数据库
  result=`mysql -u$mysql_u << EOF
  use linux;
  $sql;
  quit
EOF`
  # 判断是否执行成功
  if [ $? = 0 ] 
  then
    echo "执行成功!"
  else
    echo "执行失败!"
  fi
}
# 执行入口函数
printMenu

以下是运行shell脚本的测试结果:

=====* 欢迎登陆本系统 *=====
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
1
查询结果如下:
sid	sname	sage	sgender	sclass
1	张武	28	1	一班
2	李四	24	1	二班
3	王五	25	1	三班
4	赵六	26	1	一班
5	蓝宝	20	0	一班
8	张歌	23	0	四班
10	刘颜	20	0	二班
12	张娜	23	0	一班
13	张亮	24	1	二班
=====* 是否继续进行操作 Y or N *=====
Y
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
2
请输入要插入的数据,中间以空格分割:
韩星 24 0 三班
执行成功!
=====* 是否继续进行操作 Y or N *=====
Y
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
3
请输入要修改的数据ID,以及对应修改后的数据,中间以空格分割:
13 张良 25 1 二班 
执行成功!
=====* 是否继续进行操作 Y or N *=====
Y
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
1
查询结果如下:
sid	sname	sage	sgender	sclass
1	张武	28	1	一班
2	李四	24	1	二班
3	王五	25	1	三班
4	赵六	26	1	一班
5	蓝宝	20	0	一班
8	张歌	23	0	四班
10	刘颜	20	0	二班
12	张娜	23	0	一班
13	张良	25	1	二班
14	韩星	24	0	三班
=====* 是否继续进行操作 Y or N *=====
Y
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
4
请输入要删除的数据ID:
2
执行成功!
=====* 是否继续进行操作 Y or N *=====
Y
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
1
查询结果如下:
sid	sname	sage	sgender	sclass
1	张武	28	1	一班
3	王五	25	1	三班
4	赵六	26	1	一班
5	蓝宝	20	0	一班
8	张歌	23	0	四班
10	刘颜	20	0	二班
12	张娜	23	0	一班
13	张良	25	1	二班
14	韩星	24	0	三班
=====* 是否继续进行操作 Y or N *=====
Y
=====* 1:查询 2:插入 3:修改 4:删除 5:退出 *=====
=====* 请选择对应功能的标号,例如:1 *=====
5
=====* 退出成功 *=====

以上便是个人的分享,如果有错误的地方希望大家能够帮忙指正,谢谢!

猜你喜欢

转载自blog.csdn.net/LSW_JAVADP/article/details/90715434