[发明专利]数据库查询语句的生成方法及装置有效
申请号: | 201410773953.1 | 申请日: | 2014-12-12 |
公开(公告)号: | CN104462429B | 公开(公告)日: | 2017-12-22 |
发明(设计)人: | 李亚东 | 申请(专利权)人: | 北京国双科技有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京康信知识产权代理有限责任公司11240 | 代理人: | 李志刚,吴贵明 |
地址: | 100086 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 查询 语句 生成 方法 装置 | ||
技术领域
本发明涉及计算机领域,具体而言,涉及一种数据库查询语句的生成方法及装置。
背景技术
在对关系数据库进行数据查询时,需要利用数据库查询语句,例如结构化查询语句(Structured Query Language,简称为SQL),展开相应的数据查询。目前,利用数据库查询语句进行数据查询的方法主要有两种:一种是静态查询,这类查询中与查询条件相关的数据是固定的;另外一种是动态查询,这类查询中与查询条件相关的数据是变化的。静态查询方式可以进行预编译,然后放至存储过程或者视图中。动态查询则需要根据用户需求的不同,指定不同的查询内容。
对于动态查询,在执行查询之前需要动态构造查询内容。现有方法是针对不同的查询内容,将数据库查询语句进行字符串的拼接,然后再执行查询。该方法对编程人员来说极不友好,在拼接时容易出错,并且之后的维护也较难展开。
针对相关技术中生成数据库查询语句时准确性差的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种数据库查询语句的生成方法及装置,以解决生成数据库查询语句时准确性差的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种数据库查询语句的生成方法。
根据本发明的数据库查询语句的生成方法包括:获取多个预设查询对象,其中,多个预设查询对象包括根查询对象和多个叶查询对象;从多个叶查询对象中获取目标叶查询对象;确定查询列,其中,查询列用于表示待查询内容对应的列;将查询列和目标叶查询对象添加到根查询对象中,得到目标查询对象;根据目标查询对象生成目标数据库查询语句。
进一步地,将查询列和目标叶查询对象添加到根查询对象中,得到目标查询对象包括:获取预设查询代码,其中,预设查询代码为表示查询条件的代码;将查询列、预设查询代码和目标叶查询对象添加到根查询对象中,得到目标查询对象。
进一步地,获取多个预设查询对象包括:获取预设数据库查询语句;将预设数据库查询语句按照预设规则进行拆分,获取多个拆分结果;将多个拆分结果分别作为多个预设查询对象。
进一步地,将预设数据库查询语句按照预设规则进行拆分包括:确定预设数据库查询语句的语句结构;按照语句结构,划分出预设数据库查询语句的根节点和叶节点;按照预设数据库查询语句的根节点和叶节点对预设数据库查询语句进行拆分。
进一步地,按照语句结构,划分出预设数据库查询语句的根节点和叶节点包括:将预设数据库查询语句中包含的物理表、联接表、逻辑表和子查询表作为预设数据库查询语句的叶节点;将预设数据库查询语句中的查询实体作为预设数据库查询语句的根节点。
进一步地,多个叶查询对象用于嵌套在根查询对象中,根据目标查询对象生成目标数据库查询语句包括:获取根查询对象和目标叶查询对象的预设嵌套关系,其中,嵌套在内部的查询对象先于嵌套在外部的查询对象生成目标数据库查询语句;根据预设嵌套关系和目标查询对象生成数据库查询语句。
为了实现上述目的,根据本发明的另一方面,提供了一种数据库查询语句的生成装置。
根据本发明的数据库查询语句的生成装置包括:第一获取单元,用于获取多个预设查询对象,其中,多个预设查询对象包括根查询对象和多个叶查询对象;第二获取单元,用于从多个叶查询对象中获取目标叶查询对象;确定单元,用于确定查询列,其中,查询列用于表示待查询内容对应的列;添加单元,用于将查询列和目标叶查询对象添加到根查询对象中,得到目标查询对象;生成单元,用于根据目标查询对象生成目标数据库查询语句。
进一步地,添加单元包括:第一获取模块,用于获取预设查询代码,其中,预设查询代码为表示查询条件的代码;添加模块,用于将查询列、预设查询代码和目标叶查询对象添加到根查询对象中,得到目标查询对象。
进一步地,第一获取单元包括:第二获取模块,用于获取预设数据库查询语句;拆分模块,用于将预设数据库查询语句按照预设规则进行拆分,获取多个拆分结果;确定模块,用于将多个拆分结果分别作为多个预设查询对象。
进一步地,拆分模块包括:确定子模块,用于确定预设数据库查询语句的语句结构;划分子模块,用于按照语句结构,划分出预设数据库查询语句的根节点和叶节点;拆分子模块,用于按照预设数据库查询语句的根节点和叶节点对预设数据库查询语句进行拆分。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京国双科技有限公司,未经北京国双科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410773953.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种分组名分类方法及装置
- 下一篇:搜索建议的展示方法和装置