1 .一种自定义深度广度实现sql语句自动生成工具定制化的方法,其特征在于:所述方
法需提供query总生成模块,所述query总生成模块包含select生成模块、from生成模块以
及condition生成模块;所述select生成模块包含select子查询单元和funcall单元,所述
from生成模块包含from子查询单元和joined_table单元,所述condition生成模块包含
condition子查询单元和bool_term单元;所述方法包括如下步骤:
步骤S1、分别设置select生成模块、from生成模块以及condition生成模块的循环深度
值,并从query总生成模块开始进行查询语句生成;
步骤S2、执行select生成模块,根据select生成模块的循环深度值进行内部单元选择,
如果当前的执行次数小于设置的select生成模块的循环深度值,则选取select子查询单
元,并循环进行query总生成模块,从步骤S1开始重新生成查询语句;如果当前的执行次数
等于设置的select生成模块的循环深度值,则选取funcall单元,并从funcall单元中选取
操作函数,之后进入步骤S3;
步骤S3、执行from生成模块,根据from生成模块的循环深度值进行内部单元选择,如果
当前的执行次数小于设置的from生成模块的循环深度值,则选取from子查询单元,并循环
进行query总生成模块,从步骤S1开始重新生成查询语句;如果当前的执行次数等于设置的
from生成模块的循环深度值,则选取joined_table单元,并从joined_table单元中选取
table信息,之后进入步骤S4;
步骤S4、执行condition生成模块,根据condition生成模块的循环深度值进行内部单
元选择 ,如果当前的执行次数小于设置的condition生成模块的循环深度值 ,则选取
condition子查询单元,并循环进行query总生成模块,从步骤S1开始重新生成查询语句;如
果当前的执行次数等于设置的condition生成模块的循环深度值,则选取bool_term单元,
并从bool_term单元中选取判断信息;
步骤S5、根据步骤S2、步骤S3以及步骤S4生成的查询语句,且将所有的查询语句嵌套拼
接成一条完整的sql查询语句并输出。
2.根据权利要求1所述的自定义深度广度实现sql语句自动生成工具定制化的方法,其
特征在于:在所述步骤S2中,还包括:设置funcall单元内部不同类型的操作函数的权重,并
按照设置的权重分配不同操作函数的选取概率。
3 .根据权利要求1所述的自定义深度广度实现sql语句自动生成工具定制化的方法,其
特征在于:在所述步骤S3中,还包括:设置joined_table单元内部不同类型的table信息的
权重,并按照设置的权重分配不同table信息的选取概率。
4 .根据权利要求1所述的自定义深度广度实现sql语句自动生成工具定制化的方法,其
特征在于:在所述步骤S4中,还包括:设置bool_term单元内部不同类型的判断信息的权重,
并按照设置的权重分配不同判断信息的选取概率。
权 利 要 求 书
1/1 页
2
评论