MySQL查询语句的校验方法、装置、设备及存储介质制造方法及图纸

技术编号:37349208 阅读:18 留言:0更新日期:2023-04-22 21:46
本发明专利技术提供一种MySQL查询语句的校验方法、装置、设备及存储介质,其中,方法包括:获取待校验的MySQL查询语句,根据所述MySQL查询语句生成语法树,所述语法树表征按照语法划分的所述MySQL查询语句中各层查询语句之间的嵌套关系;解析所述语法树,得到所述MySQL查询语句的子查询语句信息;对所述子查询语句是否异常进行校验,得到校验结果。本发明专利技术通过MySQL查询语句进行校验,实现了在MySQL中数据投入生产之前的前置校验,规避了问题数据导致运行隐患的风险;并且校验结果具备高准确度。并且校验结果具备高准确度。并且校验结果具备高准确度。

【技术实现步骤摘要】
MySQL查询语句的校验方法、装置、设备及存储介质


[0001]本专利技术实施例涉及MySQL数据库应用
,尤其涉及一种MySQL查询语句的校验方法、装置、设备及存储介质。

技术介绍

[0002]MySQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,增加了速度并提高了灵活性。
[0003]当前,针对MySQL中数据的校验方法,多为基于生成的数据开发脚本进行的后置校验方法,例如:零值校验及交叉校验等。后置校验发生在数据投入生产之后,故而,问题数据在被后置校验发现之前会导致运行隐患。
[0004]并且,现有的后置校验方法校验结果的准确度低。

技术实现思路

[0005]本专利技术实施例提供一种MySQL查询语句的校验方法、装置、设备及存储介质,以解决问题数据在被后置校验发现之前会导致运行隐患,以及现有的后置校验方法校验结果的准确度低的问题。
[0006]为了解决上述技术问题,本专利技术是这样实现的:第一方面,本专利技术实施例提供了一种MySQL查询语句的校验方法,包括:获取待校验的MySQL查询语句,根据所述MySQL查询语句生成语法树,所述语法树表征按照语法划分的所述MySQL查询语句中各层查询语句之间的嵌套关系;解析所述语法树,得到所述MySQL查询语句的子查询语句信息;对所述子查询语句是否异常进行校验,得到校验结果。
[0007]可选地,对子查询语句是否异常进行校验,得到校验结果,包括:构造以所述子查询语句为节点的资源树;校验所述资源树上的每个所述子查询语句是否异常,得到所述校验结果。
[0008]可选地,校验所述资源树上的每个所述子查询语句是否异常,包括:校验所述子查询语句的特殊筛选项是否异常,得到第一子校验结果;并且,校验所述子查询语句的关联项是否异常,得到第二子校验结果;整合所述第一子校验结果以及所述第二子校验结果,得到所述校验结果。
[0009]可选地,校验所述子查询语句的特殊筛选项是否异常,包括:确定所述MySQL查询语句所要查询的MySQL数据库,并获取所述MySQL数据库的数据表;根据所述数据表是否配置有特殊筛选条件,确定所述第一子校验结果;
若所述数据表配置有所述特殊筛选条件,并且所述子查询语句中不包括所述特殊筛选条件,确定所述第一子校验结果为所述子查询语句的特殊筛选项异常。
[0010]可选地,所述子查询语句信息包括所述子查询语句的关联条件;校验所述子查询语句的关联项是否异常,包括:根据所述关联条件是否为所述子查询语句的唯一键与基础查询语句的唯一键的交集,确定所述第二子校验结果;所述基础查询语句为所述子查询语句在所述资源树中的子一级基础查询语句;若所述关联条件不为所述子查询语句的唯一键与所述基础查询的唯一键的交集,确定所述第二子校验结果为所述子查询语句的关联项异常。
[0011]可选地,采用遍历的方式校验所述资源树上的每个所述子查询语句是否异常。
[0012]第二方面,本专利技术实施例提供了一种MySQL查询语句的校验装置,包括:获取模块,用于获取待校验的MySQL查询语句,根据所述MySQL查询语句生成语法树,所述语法树表征依照语法划分的所述MySQL查询语句中各层查询语句之间的嵌套关系;解析模块,用于解析所述语法树,得到所述MySQL查询语句的子查询语句信息;校验模块,用于对所述子查询语句是否异常进行校验,得到校验结果。
[0013]可选地,所述校验模块,还用于构造以所述子查询语句为节点的资源树;所述校验模块,还用于校验所述资源树上的每个所述子查询语句是否异常,得到所述校验结果。
[0014]第三方面,本专利技术实施例提供了一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中任一项所述的MySQL查询语句的校验方法中的步骤。
[0015]第四方面,本专利技术实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面中任一项所述的MySQL查询语句的校验方法中的步骤。
[0016]在本专利技术实施例中,通过MySQL查询语句进行校验,实现了在MySQL中数据投入生产之前的前置校验,由于问题数据在被校验之前不会投入生产,故而规避了问题数据导致运行隐患的风险;并且,通过获取待校验的MySQL查询语句,根据MySQL查询语句生成语法树;解析语法树,得到MySQL查询语句的子查询语句信息,能够准确获取到子查询语句信息;进一步,准确获取到的子查询语句进行校验,确保校验结果具备高准确度。
附图说明
[0017]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本专利技术实施例MySQL查询语句的校验方法的流程示意图;图2为资源树的原理示意图;
图3为节点信息框架示意图;图4为第一子校验前的代码示意图;图5为第一子校验后的代码示意图;图6为第二子校验前的代码示意图;图7为第二子校验后的代码示意图;图8为应用本专利技术实施例MySQL查询语句的校验方法进行校验的流程示意图;图9为本专利技术实施例MySQL查询语句的校验装置的原理框图;图10为本专利技术实施例电子设备的原理框图。
具体实施方式
[0018]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0019]本专利技术实施例提供了一种MySQL查询语句的校验方法,参见图1所示,图1为本专利技术实施例MySQL查询语句的校验方法的流程示意图,包括:步骤11:获取待校验的MySQL查询语句,根据MySQL查询语句生成语法树,语法树表征按照语法划分的MySQL查询语句中各层查询语句之间的嵌套关系;步骤12:解析语法树,得到MySQL查询语句的子查询语句信息;步骤13:对子查询语句是否异常进行校验,得到校验结果。
[0020]本专利技术实施例中,语法树,即为MySQL语法树,是一个N叉树。其中,根节点为最外层的查询;而子节点的节点信息,示例性的,可以包括:1、From:本查询的信息,包括:左(基础)查询节点、右查询节点、关联字段、关联类型等(自然联结、去重联结等);如MySQL查询语句包括子查询语句,则子查询语句的节点信息也在From里面;2、Where:查询的筛选条件,包括:筛选的字段、筛选值等;3、Fields:查询的字段列表,包括:字段别名、字段长度、字段的其他特殊信息;4、On:关联的字段信息,即互相关联的表的字段名/值等信息;5、GroupBy:分组信息,即按照哪些字段分组的信息;6、Having:分组后本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种MySQL查询语句的校验方法,其特征在于,包括:获取待校验的MySQL查询语句,根据所述MySQL查询语句生成语法树,所述语法树表征按照语法划分的所述MySQL查询语句中各层查询语句之间的嵌套关系;解析所述语法树,得到所述MySQL查询语句的子查询语句信息;对所述子查询语句是否异常进行校验,得到校验结果。2.根据权利要求1所述的MySQL查询语句的校验方法,其特征在于:对子查询语句是否异常进行校验,得到校验结果,包括:构造以所述子查询语句为节点的资源树;校验所述资源树上的每个所述子查询语句是否异常,得到所述校验结果。3.根据权利要求2所述的MySQL查询语句的校验方法,其特征在于:校验所述资源树上的每个所述子查询语句是否异常,包括:校验所述子查询语句的特殊筛选项是否异常,得到第一子校验结果;并且,校验所述子查询语句的关联项是否异常,得到第二子校验结果;整合所述第一子校验结果以及所述第二子校验结果,得到所述校验结果。4.根据权利要求3所述的MySQL查询语句的校验方法,其特征在于:校验所述子查询语句的特殊筛选项是否异常,包括:确定所述MySQL查询语句所要查询的MySQL数据库,并获取所述MySQL数据库的数据表;根据所述数据表是否配置有特殊筛选条件,确定所述第一子校验结果;若所述数据表配置有所述特殊筛选条件,并且所述子查询语句中不包括所述特殊筛选条件,确定所述第一子校验结果为所述子查询语句的特殊筛选项异常。5.根据权利要求3所述的MySQL查询语句的校验方法,其特征在于:所述子查询语句信息包括所述子查询语句的关联条件;校验所述子查询语句的关联项是否异常,包...

【专利技术属性】
技术研发人员:曹宗凯
申请(专利权)人:云账户技术天津有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1