网络安全入门学习第五课——MySQL查询函数


前言

MySQL中可以使用SELECT语句来查询数据。


一、联合查询 : UNION

并操作 union、交操作 intersect、差操作 except
UNION用于合并具有相同字段结构的两个表的内容,主要用在一个结果中集中显示不同表的内容。

  语法:
  select * from venus1
  union
  select * from venus2
  • union查询默认不返回重复记录
  • union查询的表的字段必须一样
  • union查询的数据类型必须能兼

union查询结果只增加了行数而列数不变
在这里插入图片描述
在这里插入图片描述
union操作符用于合并两个或多个select语句的结果集。
union所查询的列数、列的顺序必须相同,数据类型必须兼容。

联合查询的union 一般和order by一起来使用,用来判断字段数。


二、嵌套查询:[NOT]IN、ANY、ALL、[NOT]EXISTS

1、子查询
2、子查询可以继续嵌套
3、子查询中不可以使用order by子句,只对最后结果排序
4、子查询要用括号括起来

子查询结果为集合时可用如下关键字判断:

  • [NOT]IN #[不]包含其中
  • ANY//ALL #任何一个//所有的
  • [NOT]EXISTS #[不]存在

在这里插入图片描述
在这里插入图片描述


三、查询函数

1. 系统用户名:system_user()

  查询语句:
  select system_user();
  select user from mysql.use

在这里插入图片描述

2. 用户名:user()

  查询语句:
  select user();

在这里插入图片描述

3. 当前用户名:current_user()

  查询语句:
  current_date()当前日期
  select current_user()

在这里插入图片描述

4. 连接数据库用户名:session_user()

  查询语句:
  select session_user();

在这里插入图片描述

5. 数据库名:database()

  查询语句:
  select database();

在这里插入图片描述

6. 数据库版本:version()

  查询语句:
  select version();

在这里插入图片描述

7. 数据库读取路径:

  查询语句:
  show variables like '%basedir%';

在这里插入图片描述

8. MYSQL安装路径:

  查询语句:
  show variables like "%char%";

在这里插入图片描述

9. 查看当前系统版本:

  查询语句:
  select @@version_compile_os;

在这里插入图片描述


四、其它相关函数

1. left(s,n) #返回字符串s最左边的字符,n是个数

在这里插入图片描述

2. right(s,n) #返回字符串s最右边的字符

在这里插入图片描述

3. substr()和mid() #截取字符串

  substr(s,n,len)
  mid(s,n,len)
  #截取字符串s的第n个字符,且截取长度为len
  #其中n是从1开始算起

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. lpad()和rpad() #填充

  lpad(string,length,'str')#从前面开始填充
  rpad(string,length,'str') #从后面开始填充
  #string:需要填充的字符串
  #length:填充之后的总长度
  #str:填充字符串,默认空格

在这里插入图片描述

5. LOCATE() #检索

  LOCATE(str,str1)
  LOCATE(str,str1,pos)
  LOCATE('a',locale,5) 
  #返回str在str1中第一次出现的位置 pos,从pos位置开始检索

在这里插入图片描述
在这里插入图片描述

6. insert(str1,pos,len,str2) #替换

  insert(str1,pos,len,str2)
  #str1:指定字符串
  #pos:开始被替换的位置
  #len:被替换字符串长度
  #str2:新字符串

在这里插入图片描述

7. instr() #返回特定字符串的位置

  instr(field, str) 
  #返回field字符串中出现str字符串的位置

在这里插入图片描述

8. position() #返回字符串中第一次出现的子字符串的位置

  position(str1 in str2)
  #返回字符串中第一次出现的子字符串的位置,若没有返回0

在这里插入图片描述

9. concat() #返回结果为连接参数产生的字符串

  concat(str1, str2,...)
  concat(str1,NULL, str2)就返回NULL

在这里插入图片描述
在这里插入图片描述

10. concat_ws() #返回用第一个参数作为连接符号将字符串连接

  concat_ws(separator, str1, str2, ...)
  concat_ws(null, str1, str2, ...) 返回null

在这里插入图片描述

11. group_concat() #将group by产生的同一个分组中的值连接起来,返回一个字符串

  group_concat(str1,str2,...)

在这里插入图片描述
在这里插入图片描述

12. if() #条件判断

  if(expr,v1,v2)
  #expr:条件 满足条件返回V1,不满足条件返回V2

在这里插入图片描述

13. case else #条件判断

  case when expr then v1 else v2 end
  #满足expr,则返回V1,不满足则返回V2

在这里插入图片描述

14. sleep(N) #数据库睡眠

#执行select sleep(N)可以让此语句运行N秒

15. oct() #转换为8进制

在这里插入图片描述

16. ord() #返回第一个字符串的第一个字符的ascii值

在这里插入图片描述

17. hex() #转换为16进制

在这里插入图片描述

18. char() #转换为字符串

在这里插入图片描述

19. ascii() #ASCII

在这里插入图片描述


五、函数用于判断(猜名字)

这个非常实用,可以在获得普通权限,没有管理员权限的时候使用

1. 判断当前用户的第一字符:

  查询语句:
  select left(user(),1)='r';
  #正确返回1,错误返回0

2. 判断当前用户的最后一个字符:

  查询语句:
  select right(user(),1)='r';
  #正确返回1,错误返回0

在这里插入图片描述

3. 截取当前数据第二个字符是否为r

  查询语句:
  select substr(database(),2,1)='r';
  select mid(database(),2,1)='r';
  #正确返回1,错误返回0

在这里插入图片描述


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值