sql测试的一些总结

找到了以之前零散记录的内容,然后稍微做整理,记录之:

1、先捋清楚业务过滤条件,然后查看脚本中有没有做相关的过滤,同时不同的业务属性,会产生不同的结果,属性对应的结果需要捋清楚。

业务属性很重要,哪些业务是要包含到的,哪些是不被包含到的。

2、看懂数据库脚本

捋清脚本编写者的思路,先自己脑子里大概过一下,如果自己写,应该是怎么写?

3、数据库join中容易出错的地方

left join xx on yyyy and zzzz

left join xx on yyyy where zzzz

这两个是有区别的,上面是先把xx中关于zzzz的过滤出来,下面是把join的结果中关于zzzz的过滤出来。

union 和 union all 的区别,两者造成的数据是有差别的:

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

4、局部看不明白的sql, 抠出来,然后用数据来验证不明白的地方,看是否符合预期。

5、复杂的查询,可以修改select后面的内容,改为*,然后以这样的结果进行验证(这样的数据会更直观),这种方式针对有group by的效果比较明显,去掉group by , 改成select * , 有时候能很快发现问题。

切记: 拆散的sql,记得最后在合起来再看下结果。

6. 考虑效率问题

先缩小数据范围,然后进行关联。通过explain来检查执行的情况。

7、类似业务的sql, 如果发现这边有问题,务必要检查另外的地方有没有一并修正。

8、持续更新sql技能,学会写sql及复杂业务数据的熟练构造。



留言