1. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)
  2.  
  3. Shell脚本与MySQL数据库交互(增删改查)
  4.  
  5. # 环境准备:安装mariadb 数据库
  6. [root@localhost shell]# yum install mariadb mariadb-server mariadb-libs -y
  7. [root@localhost shell]# systemctl start mariadb
  8. [root@localhost shell]# netstat -tnlp |grep :
  9. tcp 0.0.0.0: 0.0.0.0:* LISTEN /mysqld
  10.  
  11. # 默认没有密码,直接mysql即可进入数据库管理控制台
  12.  
  13. # 新建数据库
  14. create database school default character set utf8;
  15.  
  16. # 导入测试数据
  17. --建表
  18. --学生表
  19.  
  20. CREATE TABLE student(
  21. s_id varchar(),
  22. s_name varchar() not null default '',
  23. s_birth varchar() not null default '',
  24. s_sex varchar() not null default '',
  25. primary key(s_id)
  26. );
  27.  
  28. --课程表
  29. create table course(
  30. c_id varchar(),
  31. c_name varchar() not null default '',
  32. t_id varchar() not null,
  33. primary key(c_id)
  34. );
  35.  
  36. --教师表
  37. create table teacher(
  38. t_id varchar(),
  39. t_name varchar() not null default '',
  40. primary key(t_id)
  41. );
  42.  
  43. --成绩表
  44. create table score(
  45. s_id varchar(),
  46. c_id varchar(),
  47. s_score int(),
  48. primary key(s_id,c_id)
  49. );
  50.  
  51. --插入学生测试数据
  52. insert into student values('','zhaolei','1990-1001-1001','male');
  53. insert into student values('','lihang','1990-12-21','male');
  54. insert into student values('','yanwen','1990-1005-20','male');
  55. insert into student values('','hongfei','1990-1008-1006','male');
  56. insert into student values('','ligang','1991-12-1001','male');
  57. insert into student values('','zhousheng','1992-1003-1001','male');
  58. insert into student values('','wangjun','1989-1007-1001','male');
  59. insert into student values('','zhoufei','1990-1001-20','male');
  60.  
  61. --课程表测试数据
  62. insert into course values('','chinese','');
  63. insert into course values('','math','');
  64. insert into course values('','english','');
  65.  
  66. --教师表测试数据
  67. insert into teacher values('', 'aidisheng');
  68. insert into teacher values('', 'aiyinsitan');
  69. insert into teacher values('', 'qiansanqiang');
  70.  
  71. --成绩表测试
  72. insert into score values('','',);
  73. insert into score values('','',);
  74. insert into score values('','',);
  75.  
  76. insert into score values('','',);
  77. insert into score values('','',);
  78. insert into score values('','',);
  79.  
  80. insert into score values('','',);
  81. insert into score values('','',);
  82. insert into score values('','',);
  83.  
  84. insert into score values('','',);
  85. insert into score values('','',);
  86. insert into score values('','',);
  87.  
  88. insert into score values('','',);
  89. insert into score values('','',);
  90.  
  91. insert into score values('','',);
  92. insert into score values('','',);
  93.  
  94. insert into score values('','',);
  95. insert into score values('','',);
  96.  
  97. # 添加指定数据权限的用户
  98. MariaDB [school]> grant all on school.* to dbuser@'%' identified by '';
  99. # % 默认是不允许localhost登录的,需要单独添加localhost的权限
  100. MariaDB [mysql]> grant all on school.* to dbuser@'localhost' identified by '';
  101.  
  102. [root@localhost ~]# mysql -h 10.11.0.215 -u dbuser -p123456
  103. Welcome to the MariaDB monitor. Commands end with ; or \g.
  104. Your MariaDB connection id is
  105. Server version: 5.5.-MariaDB MariaDB Server
  106.  
  107. Copyright (c) , , Oracle, MariaDB Corporation Ab and others.
  108.  
  109. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  110.  
  111. MariaDB [(none)]>
  112.  
  113. mysql的常用选项
  114.  
  115. [root@localhost ~]# mysql -udbuser -p123456 -h10.11.0. -D school -e "select * from student;";
  116. +------+-----------+----------------+-------+
  117. | s_id | s_name | s_birth | s_sex |
  118. +------+-----------+----------------+-------+
  119. | | zhaolei | -- | male |
  120. | | lihang | -- | male |
  121. | | yanwen | -- | male |
  122. | | hongfei | -- | male |
  123. | | ligang | -- | male |
  124. | | zhousheng | -- | male |
  125. | | wangjun | -- | male |
  126. | | zhoufei | -- | male |
  127. +------+-----------+----------------+-------+
  128.  
  129. # -N 不显示列信息,-B 去除多余信息, -D 指定操作的数据库
  130. [root@localhost ~]# mysql -udbuser -p123456 -h10.11.0. -B -N -D school -e "select * from student;";
  131. zhaolei -- male
  132. lihang -- male
  133. yanwen -- male
  134. hongfei -- male
  135. ligang -- male
  136. zhousheng -- male
  137. wangjun -- male
  138. zhoufei -- male
  139.  
  140. # -E 垂直显示
  141. [root@localhost ~]# mysql -udbuser -p123456 -h10.11.0. -E -B -N -D school -e "select * from student;";
  142. *************************** . row ***************************
  143.  
  144. zhaolei
  145. --
  146. male
  147. *************************** . row ***************************
  148.  
  149. lihang
  150. --
  151. male
  152. *************************** . row ***************************
  153.  
  154. yanwen
  155. --
  156. male
  157. *************************** . row ***************************
  158.  
  159. hongfei
  160. --
  161. male
  162. *************************** . row ***************************
  163.  
  164. ligang
  165. --
  166. male
  167. *************************** . row ***************************
  168.  
  169. zhousheng
  170. --
  171. male
  172. *************************** . row ***************************
  173.  
  174. wangjun
  175. --
  176. male
  177. *************************** . row ***************************
  178.  
  179. zhoufei
  180. --
  181. male
  182.  
  183. # -H 以HTML格式显示
  184. # mysql -udbuser -p123456 -h10.11.0. -H -B -N -D school -e "select * from student;";
  185. <TABLE BORDER=><TR><TR><TD></TD><TD>zhaolei</TD><TD>--</TD><TD>male</TD></TR><TR><TD></TD><TD>lihang</TD><TD>--</TD><TD>male</TD></TR><TR><TD></TD><TD>yanwen</TD><TD>--</TD><TD>male</TD></TR><TR><TD></TD><TD>hongfei</TD><TD>--</TD><TD>male</TD></TR><TR><TD></TD><TD>ligang</TD><TD>--</TD><TD>male</TD></TR><TR><TD></TD><TD>zhousheng</TD><TD>--</TD><TD>male</TD></TR><TR><TD></TD><TD>wangjun</TD><TD>--</TD><TD>male</TD></TR><TR><TD></TD><TD>zhoufei</TD><TD>--</TD><TD>male</TD></TR></TABLE>

  186. # -X 以xml格式显示
  187. [root@localhost ~]# mysql -udbuser -p123456 -h10.11.0. -H -B -N -D school -e "select * from student;" > result.html
  188. [root@localhost ~]# mysql -udbuser -p123456 -h10.11.0. -X -B -N -D school -e "select * from student;" > result.xml

  1.  

批量删除生产环境数据库表的示例:

  1. tables="templates_201904181553
  2. templates_201904251425
  3. templates_201904281550
  4. templates_201904292018
  5. templates_201905101118
  6. templates_201905210938
  7. templates_201905231928
  8. templates_201906052000
  9. templates_201906061640
  10. templates_201907021640
  11. templates_201907021922
  12. templates_201907090936
  13. templates_201907111535
  14. templates_201907111545
  15. templates_201907112119
  16. templates_201907151538
  17. templates_20190715194257
  18. templates_201907161805
  19. templates_201907171414
  20. templates_20190717192927
  21. templates_201907190923
  22. templates_20190723214110
  23. templates_201907290909
  24. templates_201907291026
  25. templates_201907300956
  26. templates_20190731
  27. templates_20190805
  28. templates_20190807"
  29.  
  30. for i in $tables;do mysql -uroot -p'pass' -D cms_db -e "drop table ${i};" >/dev/nul;done

shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)的更多相关文章

  1. 第二百七十六节,MySQL数据库,【显示、创建、选定、删除数据库】,【用户管理、对用户增删改查以及授权】

    MySQL数据库,[显示.创建.选定.删除数据库],[用户管理.对用户增删改查以及授权] 1.显示数据库 SHOW DATABASES;显示数据库 SHOW DATABASES; mysql - 用户 ...

  2. Spring Boot入门系列(十八)整合mybatis,使用注解的方式实现增删改查

    之前介绍了Spring Boot 整合mybatis 使用xml配置的方式实现增删改查,还介绍了自定义mapper 实现复杂多表关联查询.虽然目前 mybatis 使用xml 配置的方式 已经极大减轻 ...

  3. .NET ORM框架HiSql实战-第二章-使用Hisql实现菜单管理(增删改查)

    一.引言 上一篇.NET ORM框架HiSql实战-第一章-集成HiSql 已经完成了Hisql的引入,本节就把 项目中的菜单管理改成hisql的方式实现. 菜单管理界面如图: 二.修改增删改查相关代 ...

  4. HDFS只支持文件append操作, 而依赖HDFS的HBase如何完成数据的增删改查

    转:http://www.th7.cn/db/nosql/201510/135382.shtml 1. HDFS的文件append功能 早期版本的HDFS不支持任何的文件更新操作,一旦一个文件创建.写 ...

  5. java数据库(MySQL)之增删改查

    1.查询数据 先救从简单的来吧,之前我们实现了将数据库表格信息读取到一个List集合中,数据库的查询,实 际上就是对这个集合的查询: public class Show { public static ...

  6. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-2.使用Mybatis注解开发视频列表增删改查

    笔记 2.使用Mybatis注解开发视频列表增删改查     讲解:使用Mybatis3.x注解方式 增删改查实操, 控制台打印sql语句              1.控制台打印sql语句      ...

  7. VS连接Access数据库--连接字符串及执行查询语句的方法(增删改查,用户名查重,根据用户获取密码查询)

    ACCESS数据的连接及语句执行操作,不难,久不用会生疏,每次都要找资料,干脆自己整理下,记录下来,需要的时候,直接查看,提高效率.也供初学者参考 1.连接字符串 public static stri ...

  8. python学习之老男孩python全栈第九期_数据库day001知识点总结 —— MySQL操作数据库以及数据表、基本数据类型、基本增删改查、外键定义以及创建

    一. 学习SQL语句规则以及外键 1. 操作文件夹 create database db2; 创建文件夹 create database db2 default charset utf8; 创建文件夹 ...

  9. MongoDB 数据库创建删除、表创建删除、数据增删改查

    一.管理 mongodb 数据库:mongo 查看所有数据库列 表 show dbs 二. 创建数据库 创建 数据库 use student 如果真的想把这个数据库创建成功,(collections) ...

随机推荐

  1. typescript 参数类型

    1.参数类型:在参数名称后面使用冒号来指定参数的类型 var myname:string = 'wzn' => "use strict"; var myname = 'wzn ...

  2. new 运算符的原理

    关于 new 运算符的原理: 1.红宝书上解释: (1)创建一个新对象 (2)将构造函数的作用域赋给新对象 (3)执行构造函数中的代码 (4)返回新对象 2.MDN上的解释: (1)一个继承自 Foo ...

  3. vuex传值的使用

    1.导入vuex import Vuex from 'vuex' Vue.use(Vuex); 2.创建store实例 let store = new Vuex.Store({ state:{ cou ...

  4. 《Exception团队》第七次作业:团队项目设计完善&编码

    一.项目基本介绍 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 Exception 作业学习目标 1.掌握软件编码实现的工程要求 作业任务 1. ...

  5. 'CSRFCheck' object has no attribute 'process_request' 报错

    环境:Python3.5 way 1: way 2: 在项目的setting.py中设置

  6. (转载) 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集群,因为AlwaysOn是基于Windows的故障转移集群的 在讲解步骤之前需要了解一下故障转移集群仲裁 ...

  7. Spring asm

    Spring 获取类的详细信息,以及方法时候,是通过asm 字节码进行获取的,在平时中我们也可以依赖spring 进行处理我们的类 //可以获取类的详细信息,比如父类上谁,类上面的注解 ,是否上接口 ...

  8. Diworth定理

    Diworth定理 一个序列中下降子序列的最少划分数个数等于最长上升子序列的长度. 一个序列中上升子序列的最少划分数个数等于最长下降子序列的长度. 每句中的前后两者互为偏序关系. 例题: Descri ...

  9. redis堵死致数据清空

    情景: zy的链路监控突然都恢复,而且在哪个时间段zabbix中显示回复,也发送了告警,但是实际上告警并没有发出来.这是不可能的情况,应该是redis缓存中的数据都被清空了,没有认为干预,需解决问题 ...

  10. C++命令空间使用和编译

    先创建目录结构 src bin obj lib include 1.创建命名空间 创建一个头文件include/head.h; #ifndef _GOOD_H #define _GOOD_H name ...