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及复杂业务数据的熟练构造

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容