内容一:shell脚本的SQL语句
1.安装SQL
可视化安装,直接下载安装了
下载完成后:
2.打开数据库
开启之后
不用的时候,记得关闭数据库
连接数据库
终端输入:mysql -u root -p
3.退出数据库
登录数据库后,文件目录为mysql>
mysql>exit
4.显示数据库
mysql>show
appstore可以下载可视化界面
5.进入数据库
mysql>use xxxx数据库名;
6.删除数据库
mysql>drop database xxxx数据库名;
7.创建数据库
mysql>create database xxxx数据库名;
8.创建数据库表
mysql>create table tablename (s_id int(4) not null primary key, s_name char(20), gender char(2) not null default '男');
解决中文乱码问题:用varchar代替char
sql结束,分号前面加入ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8
e.g:
mysql>create table tablename(s_id int(4) not null primary key, s_name char(20), gender char(2) not null default '男')ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
create table t_product(t_product_id varchar(64),t_product_name varchar(64),t_product_price varchar(32),t_product_desc varchar(256),t_product_image varchar(256)) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
9.查看数据表列表
mysql>show tables;
10.插入数据
mysql>insert into tablename values(xxx, xxx, xxx)
e.g
mysql>insert into student_table values(1, '小明明', '1')
11.查询数据表
select * from tablename
select * from student_table where s_gender <> 0
12.更新表数据
update xxxx表名 set 更新key=value where condition
e.g:
update student_table set s_name='猪猪' where s_id='1';
13.删除数据表数据
delete from tablename where condition
e.g:
delete from student_table where s_id='1';
内容二:shell操作数据库
1.shell脚本登陆数据库
脚本代码:
#!/bin/bash
MYSQL=$(which mysql)
$MYSQL -u root -p
2.shell脚本退出数据库
脚本代码:
#!/bin/bash
MYSQL=$(which mysql)
$MYSQL -u root -p -e 'exit'
总结:
$MYSQL -u root -p:登录数据库
-e 'exit':表示执行退出命令
3.shell显示数据库列表
脚本代码:
#!/bin/bash
MYSQL=$(which mysql)
$MYSQL -u root -p -e 'show databases'
4.shell语言查询数据库表
#!/bin/bash
MYSQL=$(which mysql)
$MYSQL db_temp -u root -p -e 'select * from student_table'
语法:
$MYSQYL tablename -u root -p -e 'query statement'
5.查询数据库数据表->开始标记和结束标记,输入的重定向
EOF->开始标记
code
EOF->结束标记
脚本代码:
#!/bin/bash
MYSQL=$(which mysql)
$MYSQL db_temp -u root -p << EOP
select * from student_table;
EOP
6.插入表数据
6.1常规操作
#!/bin/bash
MYSQL=$(which mysql)
$MYSQL db_temp -u root -p << EOP
insert into student_table values(2, '小明明', '1');
insert into student_table values(3, '小明', '1');
insert into student_table values(4, '明明', '1');
#查询验证插入情况
select * from student_table;
EOP
6.2动态的传递参数,并且获取sql执行语句
#!/bin/bash
if [ $# -ne 3 ]
then
echo "param isn't three, you must input three param"
else
DB=$(which mysql)
$DB db_temp -u root -p << EOF
insert into student_table values($1, '$2', $3);
EOF
if [ $? -eq 0 ]
then
echo 'insert sccuess'
$DB db_temp -u root -p << EOF
select * from student_table;
EOF
else
echo 'insert fales'
fi
fi
7.插入数据和更新数据
#!/bin/bash
# 前三参数是值,第四个是条件 第五个是值
if [ $# -ne 5 ]
then
echo "param isn't three, you must input five param"
else
DB=$(which mysql)
$DB db_temp -u root -p << EOF
insert into student_table values($1, '$2', $3);
EOF
if [ $? -eq 0 ]
then
echo 'insert sccuess'
#更新表的内容
$DB db_temp -u root -p << EOF
update student_table set s_gender=$5 where s_id=$4;
EOF
if [ $? -eq 0 ]
then
echo "update sccuess"
#查询结果 打印表数据
$DB db_temp -u root -p << EOF
select * from student_table;
EOF
else
echo "update fales"
fi
else
echo 'insert fales'
fi
fi
8.解决登录密码输入问题 (这是网上一些做法,我是没成功了,这是放出来给大家参考一下)
第一步找到mysql的配置文件
windows:my.ini
mac OS:my.cnf
mac OS path:/usr/local/etc/my.cnf(新版路径)
/usr/local/mysql-8.0.12-macos10.13-x86_64/support-files/my-Default.cnf(旧版路径)
新版的mysql是没有这个文件在/usr/local/mysql-8.0.12-macos10.13-x86_64/support-files/中的需要手动chuang jian
第二步将文件拷贝桌面进行修改,添加默认密码
在[client]下面配置如下代码
password=your password
user=your username
然后替换文件,重启服务器
9.shell脚本使用无密码登录
讲shell脚本中的-p去掉,-p是指定密码
10.批量插入
#!/bin/bash
#定义域分隔符->分割字符串
IFS=','
MYSQL=$(which mysql)
while read id name sex
do
$MYSQL db_20171108 -u root << EOF
insert into t_student(s_id, s_name, s_sex) values ($id,'$name', $sex);
EOF
done < ${1}
#结合上一次导出.csv处理方式
内容三:拓展知识,两个窗口发送消息
1.who指令现实当前用户
avalanching console Sep 4 09:31
avalanching ttys000 Sep 10 09:39
avalanching ttys001 Sep 10 11:42
分析结果:
param1 用户名
param2 用户所在的终端
param4 登录时间
who -T指令
avalanching - console Sep 4 09:31
avalanching + ttys000 Sep 10 09:39
avalanching + ttys001 Sep 10 11:42
"-":未开通
"+":开通
2.mesg指令查看当前消息权限
is y已经开启
is n没有开启
4.发送消息
1.连接两个窗口
语法:write 用户 窗口名
write avalanching ttys000
5.开启消息功能
mesg y
注意:以上的缩进是为了方便查看层级关系,如果在运行代码中报错(not found command),请去除缩进,注意if后的空格