shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)
shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库
[root@localhost shell]# yum install mariadb mariadb-server mariadb-libs -y
[root@localhost shell]# systemctl start mariadb
[root@localhost shell]# netstat -tnlp |grep :
tcp 0.0.0.0: 0.0.0.0:* LISTEN /mysqld # 默认没有密码,直接mysql即可进入数据库管理控制台 # 新建数据库
create database school default character set utf8; # 导入测试数据
--建表
--学生表 CREATE TABLE student(
s_id varchar(),
s_name varchar() not null default '',
s_birth varchar() not null default '',
s_sex varchar() not null default '',
primary key(s_id)
); --课程表
create table course(
c_id varchar(),
c_name varchar() not null default '',
t_id varchar() not null,
primary key(c_id)
); --教师表
create table teacher(
t_id varchar(),
t_name varchar() not null default '',
primary key(t_id)
); --成绩表
create table score(
s_id varchar(),
c_id varchar(),
s_score int(),
primary key(s_id,c_id)
); --插入学生测试数据
insert into student values('','zhaolei','1990-1001-1001','male');
insert into student values('','lihang','1990-12-21','male');
insert into student values('','yanwen','1990-1005-20','male');
insert into student values('','hongfei','1990-1008-1006','male');
insert into student values('','ligang','1991-12-1001','male');
insert into student values('','zhousheng','1992-1003-1001','male');
insert into student values('','wangjun','1989-1007-1001','male');
insert into student values('','zhoufei','1990-1001-20','male'); --课程表测试数据
insert into course values('','chinese','');
insert into course values('','math','');
insert into course values('','english',''); --教师表测试数据
insert into teacher values('', 'aidisheng');
insert into teacher values('', 'aiyinsitan');
insert into teacher values('', 'qiansanqiang'); --成绩表测试
insert into score values('','',);
insert into score values('','',);
insert into score values('','',); insert into score values('','',);
insert into score values('','',);
insert into score values('','',); insert into score values('','',);
insert into score values('','',);
insert into score values('','',); insert into score values('','',);
insert into score values('','',);
insert into score values('','',); insert into score values('','',);
insert into score values('','',); insert into score values('','',);
insert into score values('','',); insert into score values('','',);
insert into score values('','',); # 添加指定数据权限的用户
MariaDB [school]> grant all on school.* to dbuser@'%' identified by '';
# % 默认是不允许localhost登录的,需要单独添加localhost的权限
MariaDB [mysql]> grant all on school.* to dbuser@'localhost' identified by ''; [root@localhost ~]# mysql -h 10.11.0.215 -u dbuser -p123456
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is
Server version: 5.5.-MariaDB MariaDB Server Copyright (c) , , Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> mysql的常用选项 [root@localhost ~]# mysql -udbuser -p123456 -h10.11.0. -D school -e "select * from student;";
+------+-----------+----------------+-------+
| s_id | s_name | s_birth | s_sex |
+------+-----------+----------------+-------+
| | zhaolei | -- | male |
| | lihang | -- | male |
| | yanwen | -- | male |
| | hongfei | -- | male |
| | ligang | -- | male |
| | zhousheng | -- | male |
| | wangjun | -- | male |
| | zhoufei | -- | male |
+------+-----------+----------------+-------+ # -N 不显示列信息,-B 去除多余信息, -D 指定操作的数据库
[root@localhost ~]# mysql -udbuser -p123456 -h10.11.0. -B -N -D school -e "select * from student;";
zhaolei -- male
lihang -- male
yanwen -- male
hongfei -- male
ligang -- male
zhousheng -- male
wangjun -- male
zhoufei -- male # -E 垂直显示
[root@localhost ~]# mysql -udbuser -p123456 -h10.11.0. -E -B -N -D school -e "select * from student;";
*************************** . row *************************** zhaolei
--
male
*************************** . row *************************** lihang
--
male
*************************** . row *************************** yanwen
--
male
*************************** . row *************************** hongfei
--
male
*************************** . row *************************** ligang
--
male
*************************** . row *************************** zhousheng
--
male
*************************** . row *************************** wangjun
--
male
*************************** . row *************************** zhoufei
--
male # -H 以HTML格式显示
# mysql -udbuser -p123456 -h10.11.0. -H -B -N -D school -e "select * from student;";
<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>
# -X 以xml格式显示
[root@localhost ~]# mysql -udbuser -p123456 -h10.11.0. -H -B -N -D school -e "select * from student;" > result.html
[root@localhost ~]# mysql -udbuser -p123456 -h10.11.0. -X -B -N -D school -e "select * from student;" > result.xml

批量删除生产环境数据库表的示例:
tables="templates_201904181553
templates_201904251425
templates_201904281550
templates_201904292018
templates_201905101118
templates_201905210938
templates_201905231928
templates_201906052000
templates_201906061640
templates_201907021640
templates_201907021922
templates_201907090936
templates_201907111535
templates_201907111545
templates_201907112119
templates_201907151538
templates_20190715194257
templates_201907161805
templates_201907171414
templates_20190717192927
templates_201907190923
templates_20190723214110
templates_201907290909
templates_201907291026
templates_201907300956
templates_20190731
templates_20190805
templates_20190807" for i in $tables;do mysql -uroot -p'pass' -D cms_db -e "drop table ${i};" >/dev/nul;done
shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)的更多相关文章
- 第二百七十六节,MySQL数据库,【显示、创建、选定、删除数据库】,【用户管理、对用户增删改查以及授权】
MySQL数据库,[显示.创建.选定.删除数据库],[用户管理.对用户增删改查以及授权] 1.显示数据库 SHOW DATABASES;显示数据库 SHOW DATABASES; mysql - 用户 ...
- Spring Boot入门系列(十八)整合mybatis,使用注解的方式实现增删改查
之前介绍了Spring Boot 整合mybatis 使用xml配置的方式实现增删改查,还介绍了自定义mapper 实现复杂多表关联查询.虽然目前 mybatis 使用xml 配置的方式 已经极大减轻 ...
- .NET ORM框架HiSql实战-第二章-使用Hisql实现菜单管理(增删改查)
一.引言 上一篇.NET ORM框架HiSql实战-第一章-集成HiSql 已经完成了Hisql的引入,本节就把 项目中的菜单管理改成hisql的方式实现. 菜单管理界面如图: 二.修改增删改查相关代 ...
- HDFS只支持文件append操作, 而依赖HDFS的HBase如何完成数据的增删改查
转:http://www.th7.cn/db/nosql/201510/135382.shtml 1. HDFS的文件append功能 早期版本的HDFS不支持任何的文件更新操作,一旦一个文件创建.写 ...
- java数据库(MySQL)之增删改查
1.查询数据 先救从简单的来吧,之前我们实现了将数据库表格信息读取到一个List集合中,数据库的查询,实 际上就是对这个集合的查询: public class Show { public static ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-2.使用Mybatis注解开发视频列表增删改查
笔记 2.使用Mybatis注解开发视频列表增删改查 讲解:使用Mybatis3.x注解方式 增删改查实操, 控制台打印sql语句 1.控制台打印sql语句 ...
- VS连接Access数据库--连接字符串及执行查询语句的方法(增删改查,用户名查重,根据用户获取密码查询)
ACCESS数据的连接及语句执行操作,不难,久不用会生疏,每次都要找资料,干脆自己整理下,记录下来,需要的时候,直接查看,提高效率.也供初学者参考 1.连接字符串 public static stri ...
- python学习之老男孩python全栈第九期_数据库day001知识点总结 —— MySQL操作数据库以及数据表、基本数据类型、基本增删改查、外键定义以及创建
一. 学习SQL语句规则以及外键 1. 操作文件夹 create database db2; 创建文件夹 create database db2 default charset utf8; 创建文件夹 ...
- MongoDB 数据库创建删除、表创建删除、数据增删改查
一.管理 mongodb 数据库:mongo 查看所有数据库列 表 show dbs 二. 创建数据库 创建 数据库 use student 如果真的想把这个数据库创建成功,(collections) ...
随机推荐
- /bin/false和/sbin/nologin的区别
/bin/false是最严格的禁止login选项,一切服务都不能用./sbin/nologin只是不允许login系统 其中树莓派的/sbin/nologin文件在/usr/sbin/nologin小 ...
- python3 xml_to_dict、dict_to_xml等互相转换的方法
from basic_config_vars.config_vars import moviesAllFilePath,moviesFilePath #自定义的一些文件变量 import xmltod ...
- 牛客82-B:区间的连续段 (ST表,贪心)(WXK牛逼)
题目描述 给你一个长为n的序列a和一个常数k 有m次询问,每次查询一个区间[l,r]内所有数最少分成多少个连续段,使得每段的和都 <= k 如果这一次查询无解,输出"Chtholly& ...
- HTTPS——https下的静态资源中如何使用http的地址
前言 今天在改博皮的时候,将一些图片上传到七牛,但是引入的时候出问题了,因为七牛cnd设置的不是https域名,所以加载资源的时候导致自动转为https请求. 步骤 错误的写法 background: ...
- node gyp编译所需要的环境
安装ms的build工具包,自带python npm install --global --production windows-build-tools
- pandas数据类型判断(三)数据判断
1.函数:空值判断 1)判断数值是否为空用 pd.isna,pd.isnull,np.isnan2)判断字符串是否为空用 pd.isna,pd.isnull:3)判断时间是否为空用 pd.isna,p ...
- Kubernetes 学习5 kubernetes资源清单定义入门
一.kubernetes是有一个restful风格的 API,把各种操作对象都一律当做资源来管理.并且可通过标准的HTTP请求的方法 GET,PUT,DELETE,POST,等方法来完成操作,不过是通 ...
- 浏览器URL中“#” “?” &“”作用
1. # 10年9月,twitter改版.一个显著变化,就是URL加入了"#!"符号.比如,改版前的用户主页网址为http://twitter.com/username改版后,就变 ...
- Bzoj 1010: [HNOI2008]玩具装箱toy(斜率优化)
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MB Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定 ...
- 洛谷P2324 [SCOI2005] 骑士精神
题目 方法很多,最经典的是用搜索的算法,也就是\(IDA*\)算法搜索. \(IDA*\)算法是每次规定一个搜索深度,并在搜索的时候限制该搜索深度,从而达到把深搜的优点和广搜的优点结合起来优化时间的一 ...
