数据库知识点补充
1.union联合查询:可以通过联合查询来获取指定的数据
用法举例:
select username,password from user where id = 1 union select 字段一,字段二 from 表名
注意:联合查询的字段数需要和主查询一致,否则会报错
如上图所示,结果主查询给出了用户kobe的id和email,联合查询给出了id=1的用户的username和pw。
2.order by x:对查询的结果进行升序排序,按照第x列进行排列,默认数字0-9,字母a-z
用法举例:
select id,email from user order by 3
对查询到的id和email按照user表中第三列进行排序,若指定的列不存在,数据库会报错。
通过报错判断查询结果的列数,从而确定主查询的字段数
3.数据库信息查询:
select version();//查询数据库的版本
select database();//查询当前使用的数据库
select user();//查询当前登录的用户
利用union获取网站的数据库信息--以pikachu为例
首先要判断主查询有几个字段,这里要用到order by
对输入a构造闭合,后面接上order by 5,表示按照第五列进行排序查询,结果确显示第五列不存在,然后改变数字5,依次输入4,3,2,发现输入2时没有异常,只是显示用户名不存在,说明主查询有两个字段。
知道主查询有两个字段后,然后就要用到union联合查询数据库信息。
在输入框输入 a' union select version(),user(),这样就可以联合查询出数据库信息
注:这里union的第二个字段输入了4(输入其他数字都可以)