数据库查询语句的生成方法及装置制造方法及图纸

技术编号:11214858 阅读:67 留言:0更新日期:2015-03-27 01:53
本发明专利技术公开了一种数据库查询语句的生成方法及装置。该数据库查询语句的生成方法包括:获取多个预设查询对象,其中,多个预设查询对象包括根查询对象和多个叶查询对象;从多个叶查询对象中获取目标叶查询对象;确定查询列,其中,查询列用于表示待查询内容对应的列;将查询列和目标叶查询对象添加到根查询对象中,得到目标查询对象;根据目标查询对象生成目标数据库查询语句。通过本发明专利技术,解决了生成数据库查询语句时准确性差的问题,进而通过将查询列和目标叶查询对象添加到根查询对象中,得到目标查询对象,再根据目标查询对象生成目标数据库查询语句,达到了提高生成数据库查询语句的准确性的效果。

【技术实现步骤摘要】
数据库查询语句的生成方法及装置
本专利技术涉及计算机领域,具体而言,涉及一种数据库查询语句的生成方法及装置。
技术介绍
在对关系数据库进行数据查询时,需要利用数据库查询语句,例如结构化查询语句(Structured Query Language,简称为SQL),展开相应的数据查询。目前,利用数据库查询语句进行数据查询的方法主要有两种:一种是静态查询,这类查询中与查询条件相关的数据是固定的;另外一种是动态查询,这类查询中与查询条件相关的数据是变化的。静态查询方式可以进行预编译,然后放至存储过程或者视图中。动态查询则需要根据用户需求的不同,指定不同的查询内容。 对于动态查询,在执行查询之前需要动态构造查询内容。现有方法是针对不同的查询内容,将数据库查询语句进行字符串的拼接,然后再执行查询。该方法对编程人员来说极不友好,在拼接时容易出错,并且之后的维护也较难展开。 针对相关技术中生成数据库查询语句时准确性差的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术的主要目的在于提供一种数据库查询语句的生成方法及装置,以解决生成数据库查询语句时准确性差的问题。 为了实现上述目的,根据本专利技术的一个方面,提供了一种数据库查询语句的生成方法。 根据本专利技术的数据库查询语句的生成方法包括:获取多个预设查询对象,其中,多个预设查询对象包括根查询对象和多个叶查询对象;从多个叶查询对象中获取目标叶查询对象;确定查询列,其中,查询列用于表示待查询内容对应的列;将查询列和目标叶查询对象添加到根查询对象中,得到目标查询对象;根据目标查询对象生成目标数据库查询语句。 进一步地,将查询列和目标叶查询对象添加到根查询对象中,得到目标查询对象包括:获取预设查询代码,其中,预设查询代码为表示查询条件的代码;将查询列、预设查询代码和目标叶查询对象添加到根查询对象中,得到目标查询对象。 进一步地,获取多个预设查询对象包括:获取预设数据库查询语句;将预设数据库查询语句按照预设规则进行拆分,获取多个拆分结果;将多个拆分结果分别作为多个预设查询对象。 进一步地,将预设数据库查询语句按照预设规则进行拆分包括:确定预设数据库查询语句的语句结构;按照语句结构,划分出预设数据库查询语句的根节点和叶节点;按照预设数据库查询语句的根节点和叶节点对预设数据库查询语句进行拆分。 进一步地,按照语句结构,划分出预设数据库查询语句的根节点和叶节点包括:将预设数据库查询语句中包含的物理表、联接表、逻辑表和子查询表作为预设数据库查询语句的叶节点;将预设数据库查询语句中的查询实体作为预设数据库查询语句的根节点。 进一步地,多个叶查询对象用于嵌套在根查询对象中,根据目标查询对象生成目标数据库查询语句包括:获取根查询对象和目标叶查询对象的预设嵌套关系,其中,嵌套在内部的查询对象先于嵌套在外部的查询对象生成目标数据库查询语句;根据预设嵌套关系和目标查询对象生成数据库查询语句。 为了实现上述目的,根据本专利技术的另一方面,提供了一种数据库查询语句的生成 目.ο 根据本专利技术的数据库查询语句的生成装置包括:第一获取单元,用于获取多个预设查询对象,其中,多个预设查询对象包括根查询对象和多个叶查询对象;第二获取单元,用于从多个叶查询对象中获取目标叶查询对象;确定单元,用于确定查询列,其中,查询列用于表示待查询内容对应的列;添加单元,用于将查询列和目标叶查询对象添加到根查询对象中,得到目标查询对象;生成单元,用于根据目标查询对象生成目标数据库查询语句。 进一步地,添加单元包括:第一获取模块,用于获取预设查询代码,其中,预设查询代码为表示查询条件的代码;添加模块,用于将查询列、预设查询代码和目标叶查询对象添加到根查询对象中,得到目标查询对象。 进一步地,第一获取单元包括:第二获取模块,用于获取预设数据库查询语句;拆分模块,用于将预设数据库查询语句按照预设规则进行拆分,获取多个拆分结果;确定模块,用于将多个拆分结果分别作为多个预设查询对象。 进一步地,拆分模块包括:确定子模块,用于确定预设数据库查询语句的语句结构;划分子模块,用于按照语句结构,划分出预设数据库查询语句的根节点和叶节点;拆分子模块,用于按照预设数据库查询语句的根节点和叶节点对预设数据库查询语句进行拆分。 通过本专利技术,采用包括以下步骤的方法:获取多个预设查询对象,其中,多个预设查询对象包括根查询对象和多个叶查询对象;从多个叶查询对象中获取目标叶查询对象;确定查询列,其中,查询列用于表示待查询内容对应的列;将查询列和目标叶查询对象添加到根查询对象中,得到目标查询对象;根据目标查询对象生成目标数据库查询语句,解决了生成数据库查询语句时准确性差的问题,进而通过将查询列和目标叶查询对象添加到根查询对象中,得到目标查询对象,再根据目标查询对象生成目标数据库查询语句,达到了提高生成数据库查询语句的准确性的效果。 【附图说明】 构成本申请的一部分的附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中: 图1是根据本专利技术的数据库查询语句的生成方法的实施例的流程图; 图2是根据本专利技术的数据库查询语句的生成方法的实施例的第一树形语句结构示意图; 图3是根据本专利技术的数据库查询语句的生成方法的实施例的第二树形语句结构示意图; 图4是根据本专利技术的数据库查询语句的生成方法的实施例的第三树形语句结构不意图;以及 图5是根据本专利技术的数据库查询语句的生成装置的实施例的示意图。 【具体实施方式】 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本专利技术。 为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。 根据本专利技术的实施例,提供了一种数据库查询语句的生成方法。 图1是根据本专利技术的数据库查询语句的生成方法的实施例的流程图。如图1所示,该方法包括步骤S102至步骤SllO: 步骤S102,获取多个预设查询对象,其中,多个预设查询对象包括根查询对象和多个叶查询对象。 多个预设查询对象包括根查询对象和多个叶查询对象。根查询对象是生成的数据库查询语句的最上层的查询实体,例如,SELECT…FROM…。叶查询对象是可以添加入根查询对象中的查询实体。叶本文档来自技高网
...
数据库查询语句的生成方法及装置

【技术保护点】
一种数据库查询语句的生成方法,其特征在于,包括:获取多个预设查询对象,其中,所述多个预设查询对象包括根查询对象和多个叶查询对象;从所述多个叶查询对象中获取目标叶查询对象;确定查询列,其中,所述查询列用于表示待查询内容对应的列;将所述查询列和所述目标叶查询对象添加到所述根查询对象中,得到目标查询对象;以及根据所述目标查询对象生成目标数据库查询语句。

【技术特征摘要】
1.一种数据库查询语句的生成方法,其特征在于,包括: 获取多个预设查询对象,其中,所述多个预设查询对象包括根查询对象和多个叶查询对象; 从所述多个叶查询对象中获取目标叶查询对象; 确定查询列,其中,所述查询列用于表示待查询内容对应的列; 将所述查询列和所述目标叶查询对象添加到所述根查询对象中,得到目标查询对象;以及 根据所述目标查询对象生成目标数据库查询语句。2.根据权利要求1所述的方法,其特征在于,将所述查询列和所述目标叶查询对象添加到所述根查询对象中,得到目标查询对象包括: 获取所述预设查询代码,其中,所述预设查询代码为表示查询条件的代码;以及将所述查询列、所述预设查询代码和所述目标叶查询对象添加到所述根查询对象中,得到所述目标查询对象。3.根据权利要求1所述的方法,其特征在于,获取多个预设查询对象包括: 获取预设数据库查询语句; 将所述预设数据库查询语句按照预设规则进行拆分,获取多个拆分结果;以及 将所述多个拆分结果分别作为所述多个预设查询对象。4.根据权利要求3所述的方法,其特征在于,将所述预设数据库查询语句按照预设规则进行拆分包括: 确定所述预设数据库查询语句的语句结构; 按照所述语句结构,划分出所述预设数据库查询语句的根节点和叶节点;以及按照所述预设数据库查询语句的根节点和所述叶节点对所述预设数据库查询语句进行拆分。5.根据权利要求4所述的方法,其特征在于,按照所述语句结构,划分出所述预设数据库查询语句的根节点和叶节点包括: 将所述预设数据库查询语句中包含的物理表、联接表、逻辑表和子查询表作为所述预设数据库查询语句的叶节点;以及 将所述预设数据库查询语句中的查询实体作为所述预设数据库查询语句的根节点。6.根据权利要求1所述的方法,其特征在于,所述多个叶查询对象用于嵌套在所述根...

【专利技术属性】
技术研发人员:李亚东
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:北京;11

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

1