高级查询与子查询

本文详细介绍了MySQL的基本查询语句,包括排序、分页、模糊查询,以及联合查询和子查询的使用方法。此外,还涵盖了渗透测试中常用的函数,如GROUP_CONCAT、DATABASE()等。

一、MySQL的基础查询语句

select*from 表 order by 字段 [ASC(默认)/DESC];根据字段名排序。如果不知道字段名的话,可以用order by 1/2代替,以第1/2个字段排序。升序(从小到大)ASC,降序(从大到小) DESC.

select*from 表 limit n,m;

n表示从第几行开始,m表示取几条。Limit核心在于分页。Limit 0,1 从第一行开始共取一行。Limit (2,2) 从第三行开始共取二行。

select *from 表 where username like '%%' 模糊查询

运算符号: + - * / % 数据库可以执行加减乘除 select 1+2;

逻辑运算: NOT (!) 取反 where not/! Xm=… AND (&) OR (|) 需要用两个一样的符号在一起才能起效

另外,数据库里有sleep函数,有延时的意思。Select sleep(5);延时5秒执行。Sleep()本身是假。And如果前面是假的,后面就不会执行。

二、联合查询(字段数必须相同)

表的内容无重复:

SELECT * FROM 表1 UNION SELECT * FROM 表2;

表的内容有重复:

SELECT * FROM 表1 UNION ALL SELECT * FROM 表2;

注意事项:两次查询的列数必须一致。

三、子查询

官方定义:子查询是一种常用计算机语言SELECT-SQL语言中嵌套查询下层的程序模块。当一个查询是另一个查询的条件时,称之为子查询。

理解:子查询就如同 1+22=5 (1+2)2=6

子查询就是优先执行,然后执行得到的结果作为某个查询的条件

select *from user where username = (select username from admin where id=1);

admin表当id=1的用户名是否在user表也存在

select*from user where username in (select username from admin)

检查admin表和user表是否有用户名相等

四、渗透测试常用函数

GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果

Select group_concat(xm) from bjb;多行数据单行输出

DATABASE() 返回当前数据库名

USER()或SYSTEM_USER() 返回当前登陆用户名

VERSION() 返回MySQL服务器的版本 select version();

SLEEP(n) 休眠n秒

一起交流网安吧:safe2082

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值