一、要明白在sql语句里面各英语所代表的含义:
(1)select*from , 后添加数据库名称,也就是我们所查询的信息是由这个数据库所提供(翻译:从中选择)
(2)database() , 查询数据库名称(翻译:database 数据库)
(3)table_name=' ' ,单引号里面填写表名称(翻译:table_name 表名称)(翻译:column_name列名称)
(4)order by 作用对查询结果进行排序处理
select * from 表名 order by 列名(或者数字) asc;升序(默认升序)
select * from 表名 order by 列名(或者数字) desc;降序
比如说select*from users order by id asc,也就是排序按照id大小升序,如果是select*from users order by username asc,设想一下username全是英文,那么它就是按照abcd...这样的顺序排,和英语字典是一个道理。
(5)union 多表的时候可以使用union来连接两个表,使之同时被查询,但是union使用时需要保证合并的两边列数一致数据类型相似,可以无限添加NULL来检测表有多少列。如果知道列表名也可以将NULL改成列表名称。
(6) where 自我总结是查询的作用,然后根据网页回显的正确错误来判断所查询的信息是否正确,where+列表名称(如id、username、city、password等等)+运算符号(=、>、<、>=、<=、<>(不等于) 等等)+判断内容(如admin、123等等)
需要注意的是,如果是判断账号密码是否等于某些字符,字符要加 ' ' 单引号,如果是判断数字的大小,如员工是否大于20人,工资是否大于5000,这样的话,数字是不加 ' ' 单引号的。
(7)limit a,b a表示从第a+1条开始记录,b表示取b条数据,既记录a+1到a+b条数据。
(8)or 使用or时,计算机只要判断一个条件为真便会执行,所以不知道账号和密码也没关系,在要执行的操作后面加上or 1=1(或者其他真命题)计算机就会自动执行操作。
(9)count count() 函数返回匹配指定条件的数值,count(*)函数返回表中的记录数。
select count(*)用于查找数据库中表的数量或者表中列的数量。
(10)information schema.tables 这个可以理解是数据库的表,information schema.columns数据库表列。
(11)--、#(都是注释)
解题的一般顺序:查当前数据库的名称,查数据库表的数量,查表的名字(需要与flag有关的表),查找表列的数量,查找表列的名称,查表记录的数量,查表的记录值(即flag)。
先到这里,后面的知识点我再探索一下,总结了规律再来写。