**
渗透测试-地基篇-数据库增删改查操作(三)
**
作者:大余
时间: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会从后开始增添:8、9等等..
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 指的是两个表列不一致的情况下,添加可相匹配后列出数据
今天基础牢固就到这里,虽然基础,但是必须牢记于心。
要是你觉得这篇博客写的还不错,欢迎分享给身边的人,欢迎加入免费群共同学习成长。

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

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

被折叠的 条评论
为什么被折叠?



