渗透测试-地基篇-数据库增删改查操作(三)

本文是渗透测试地基篇,聚焦MySQL数据库操作。介绍了数据库增删改查的基本操作,如添加、删除和更改数据;详细阐述了多种查询方式,包括表单查询、条件查询等;还涉及高级查询,如聚合查询、分组查询等;最后讲解了MySQL的子查询类型。

**

渗透测试-地基篇-数据库增删改查操作(三)

**

作者:大余
时间:2020-11-17

简介:

渗透测试-地基篇:
该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意:

对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!


一、数据库增删改查操作

1、表中所有字段添加数据

在这里插入图片描述

命令:

insert into biao1 (id,username,password) values (1,'dayu','123456');
# INSERT 语句中指定所有字段名

insert into biao1 values(null,'test','123456');
#INSERT语句中不指定字段名

2、为表的指定字段添加数据

在这里插入图片描述
命令:

 insert into biao1 (username)values('dayu1');
 #指定字段添加数据递增状态

insert into biao1 (id,username,password) values (null,'dayu','123456'),(n
ull,'dayu3','1234567');
#增加多条方法

insert into biao1 values (null,'dayu','123456'),(null,'dayu3','1234567');
#增加多条方法

3、在表中删除数据

在这里插入图片描述
命令:

delete from biao1 where id=1; 
#这种方法删除数据后,在增加数据id会从后开始增添:89等等..

truncate table biao1;
#这种方法删除数据后,在增加数据id=1开始算

delete from biao1;
#全部删除

4、更改表中数据

更新数据指对表中现存的数据进行修改
在这里插入图片描述
命令:

update biao1 set password='56454' where id=2;

update biao1 set password='22222',username='root' where id=3;
#修改多种类型数据
update biao1 set password='123456';
#修改所有类型数据

二、查询数据

1、表单查询

在这里插入图片描述

1、select * from biao1;   #查询所有数据
2、select username from biao1;    #查询单个类型数据
3、select username,password from biao1;   #查询多个类型数据

2、按条件查询

在这里插入图片描述

命令:

select * from biao1 where id=1;
#按指定条件查询
select * from biao1 where id<=1;

关系运算符说明
= 	等于
<> 	不等于
!= 	不等于< 小于
<= 	小于等于
> 	大于
>= 	大于等于

3、带 IN 关键字的查询

在这里插入图片描述

命令:

select * from biao1 where id in(1,2,3);
select * from biao1 where id not in(1,2,3);

4、空值查询

在这里插入图片描述
命令:

select * from biao1 where id is not null;
select * from biao1 where id is null;

5、去掉重复查询

在这里插入图片描述

命令:

select distinct username from biao1;

6、带 LIKE 关键字进行模糊查询

常用百分号通配符:
在这里插入图片描述
命令:

select * from biao1 where username like "d%";
select * from biao1 where username like "%d%";

下划线通配符:

在这里插入图片描述
命令:

select * from biao1 where username like "dayu_";   
select * from biao1 where username like "d____";
#一个数值加一个_

7、带 AND和or 关键字的多条件查询

带 AND 关键字的多条件查询:
在这里插入图片描述
命令:

select * from biao1 where id<7 and username='test1';

带 OR 关键字的多条件查询:

在这里插入图片描述

命令:

select * from biao1 where id<7 or username='test1';
select * from biao1 where id=5 or username='test1';

OR 和 AND 一起使用:
在这里插入图片描述
命令:

select * from biao1 where id>2 and password='12345116' or username='test';
select * from biao1 where id>2 and password='123456' or username='testa';
select * from biao1 where id>2 and password='123456' or username='test11'

OR 和 AND 一起使用的时候,AND 的优先级高于 OR,因此二者一起使用时,会先运算 AND 两边的表达式,再运算 OR 两边的表达式。

三、高级查询数据

1、聚合查询

在这里插入图片描述
命令:

mysql> select count(id) from biao1;
mysql> select count(*) from biao1;

mysql> select sum(id) from biao1;
mysql> select avg(id) from biao1;
mysql> select max(id) from biao1;
mysql> select min(id) from biao1;

COUNT() 	返回某列的行数
SUM()		返回某列值的和
AVG() 		返回某列的平均值
MAX() 		返回某列的最大值
MIN() 		返回某列的最小值

2、分组查询

1)单独使用 GROUP BY 进行分组
在这里插入图片描述
命令:

select * from biao1 group by password;
select * from biao1 group by username;

2) GROUP BY 和 HAVING 关键字一起使用
在这里插入图片描述

select max(id) from biao1 group by username;
select count(id) from biao1 group by username;

HAVING关键字和WHERE关键字的作用相同,区别在于HAVING 关键字可以跟聚合函数,而 WHERE 关键字不能。通常HAVING 关键字都和GROUP BY一起使用,用于对分组后的结果进行过滤。

例如:
在这里插入图片描述
命令:

select * from biao1 group by username having sum(id)<6;
#查询sum函数求和中小于6的数据返回

3、使用 LIMIT 限制查询结果的数量

在这里插入图片描述

命令:

select * from biao1 limit 1;
select * from biao1 limit 4;
select * from biao1 limit 1,5;  #显示1~5的结果

4、为表和字段取别名

1)为表取别名
在这里插入图片描述
命令:

select * from biao1 as u where u.id=2;
#数据量非常大的情况下,用as定义类型别名查询

2)为字段别名
在这里插入图片描述
命令:

select username as n from biao1;
select username as myname from biao1;
#字段名username变成myname,在以后会使用到

四、mysql的子查询

1、where型子查询

在这里插入图片描述
命令:

select * from biao1 where id in (select * from biao1 where id>5);
# "*"类型需要选择需要查询的类型, (把内层查询结果当作外层查询的比较条件)
select * from biao1 where id in (select id from biao1 where id>5);

2、from型子查询

在这里插入图片描述
命令:

select * from (select * from biao1 where id<4) as age_1;
#(把内层的查询结果供外层再次查询)
#(select * from users where id<4)查询出来的是一个集合别名为age_1
#例如:select * from age_1 内容一样

3、exists型子查询

在这里插入图片描述
命令:

select * from biao1 where exists(select * from biao1 where id>2);
#(把外层查询结果拿到内层,看内层的查询是否成立)
#假如()内返回成立,则输出所有,返回不成立则无

4、联合查询(两个表的查询)

在这里插入图片描述
利用前面的知识创建一个表,然后添加三行数据。
在这里插入图片描述
命令:

select * from biao1 union select *,1 from biao2;
#这里*,1 指的是两个表列不一致的情况下,添加可相匹配后列出数据

今天基础牢固就到这里,虽然基础,但是必须牢记于心。

要是你觉得这篇博客写的还不错,欢迎分享给身边的人,欢迎加入免费群共同学习成长。

在这里插入图片描述

如失效加个人以下图,个人微信拉入群。

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值