数据查询方法、装置、计算机可读存储介质及电子设备制造方法及图纸

技术编号:21736020 阅读:18 留言:0更新日期:2019-07-31 19:10
本公开涉及一种数据查询方法、装置、计算机可读存储介质及电子设备。所述方法包括:根据接收到的数据集选择指令,确定数据集实体,其中,所述数据集实体中至少包括第一查询字段和第一数据源,所述第一数据源对应于数据表;根据接收到的查询选择指令,确定查询实体,其中,所述查询实体中至少包括第二查询字段和第二数据源,所述第二数据源对应于所述数据集实体;根据所述数据集实体和所述查询实体生成sql查询语句;根据所述sql查询语句查询与所述数据集实体对应的数据表,获得查询结果。因此,可以有效降低数据查询操作对用户的高要求,提高方法的适用性和使用范围,提升用户使用体验。

Data query method, device, computer readable storage medium and electronic equipment

【技术实现步骤摘要】
数据查询方法、装置、计算机可读存储介质及电子设备
本公开涉及数据处理领域,具体地,涉及一种数据查询方法、装置、计算机可读存储介质及电子设备。
技术介绍
数据库中存储有各种各样的数据表,用户通过需要访问数据库以获取其所需的数据。现有技术中,通常需要用户输入数据库查询语句(即,sql语句),以从数据库中查询数据。然而,这对用户的专业要求较高,并且不同数据库类型对应的查询语句之间存在差别,更加增加了用户使用的难度。
技术实现思路
为了解决上述问题,本公开的目的是提供一种简洁且便于用户使用的数据查询方法、装置、计算机可读存储介质及电子设备。为了实现上述目的,根据本公开的第一方面,提供一种数据查询方法,所述方法包括:根据接收到的数据集选择指令,确定数据集实体,其中,所述数据集实体中至少包括第一查询字段和第一数据源,所述第一数据源对应于数据表;根据接收到的查询选择指令,确定查询实体,其中,所述查询实体中至少包括第二查询字段和第二数据源,所述第二数据源对应于所述数据集实体;根据所述数据集实体和所述查询实体生成sql查询语句;根据所述sql查询语句查询与所述数据集实体对应的数据表,获得查询结果。可选地,所述方法还包括:根据接收到的第一过滤指令,确定第一过滤条件,并将所述第一过滤条件添加至所述数据集实体;和/或根据接收到的第二过滤指令,确定第二过滤条件,并将所述第二过滤条件添加至所述查询实体。可选地,所述根据所述数据集实体和所述查询实体生成sql查询语句,包括:确定所述数据集实体对应的数据库类型;分别确定所述数据集实体和所述查询实体对应的sql语句;根据所述数据库类型对应的sql语法对所述sql语句进行拼接,获得所述sql查询语句。可选地,所述分别确定所述数据集实体和所述查询实体对应的sql语句,包括:根据预设的sql映射关系,分别确定所述数据集实体和所述查询实体对应的sql语句,其中,所述预设的sql映射关系包括:查询字段对应select语句;数据源对应from语句;过滤条件对应where语句或having语句,若所述过滤条件对应的表达式中包含聚合计算,所述过滤条件对应having语句;若所述过滤条件对应的表达式中不包含聚合计算,所述过滤条件对应where语句。可选地,所述预设的sql映射关系还包括:在所述查询字段为多个时,若一部分所述查询字段对应于聚合计算,则除对应于聚合计算的该部分查询字段外的其他查询字段还对应groupby语句。可选地,所述根据预设的sql映射关系,确定所述数据集实体和所述查询实体对应的sql语句,包括:当所述第一数据源对应的数据表为一个时,则将所述数据表的数据表名作为表引用,生成所述第一数据源对应的from语句;当所述第一数据源对应的数据表为多个时,若多个数据表之间全部关联且不存在环状关联时,将各个所述数据表通过join语句进行关联作为表引用,生成所述第一数据源对应的from语句;对所述第二数据源对应的所述数据集实体调用生成子查询,将所述数据集实体的实体名作为表引用,生成所述第二数据源对应的from语句。可选地,所述将各个所述数据表通过join语句进行关联作为表引用,包括:从关联关系列表中取出一个关联关系,其中,所述关联关系列表中包括所述第一数据源对应的数据表之间的关联关系;若哈希表为空,将所述关联关系的左数据表的引用作为join语句的左侧表引用,将所述关联关系的右数据表的引用作为所述join语句的右侧表引用,其中,所述左数据表为所述关联关系中等号左边的数据表,所述右数据表为所述关联关系中等号右边的数据表,所述哈希表用于存储数据表,所述哈希表初始为空,所述当前表引用初始为空;在所述哈希表不为空时,若所述哈希表中存在所述关联关系中的左数据表,将当前表引用作为join语句的左侧表引用,若所述哈希表中不存在所述关联关系中的左数据表,将所述左数据表的引用确定为join语句的左侧表引用;若所述哈希表中存在所述关联关系中的右数据表,将当前表引用作为join语句的右侧表引用,若所述哈希表中不存在所述关联关系中的右数据表,将所述右数据表的引用确定为join语句的右侧表引用;根据所述关联关系对应的关联字段生成sql断言;根据确定出的join语句的左侧表引用和右侧表引用、所述sql断言确定新的当前表引用,将所述关联关系的左数据表和所述右数据表添加至所述哈希表中,并返回所述从关联关系列表中取出一个关联关系的步骤,直至关联关系列表为空。可选地,所述将各个所述数据表通过join语句进行关联作为表引用,还包括:若所述哈希表不为空,且所述哈希表中不存在所述关联关系的左数据表和右数据表时,将所述关联关系添加至所述关联关系列表,并返回所述从关联关系列表中取出一个关联关系的步骤。根据本公开的第二方面,提供一种数据查询装置,所述装置包括:第一确定模块,用于根据接收到的数据集选择指令,确定数据集实体,其中,所述数据集实体中至少包括第一查询字段和第一数据源,所述第一数据源对应于数据表;第二确定模块,用于根据接收到的查询选择指令,确定查询实体,其中,所述查询实体中至少包括第二查询字段和第二数据源,所述第二数据源对应于所述数据集实体;生成模块,用于根据所述数据集实体和所述查询实体生成sql查询语句;查询模块,用于根据所述sql查询语句查询与所述数据集实体对应的数据表,获得查询结果。可选地,所述装置还包括:第一添加模块,用于根据接收到的第一过滤指令,确定第一过滤条件,并将所述第一过滤条件添加至所述数据集实体;和/或第二添加模块,用于根据接收到的第二过滤指令,确定第二过滤条件,并将所述第二过滤条件添加至所述查询实体。可选地,所述生成模块包括:第一确定子模块,用于确定所述数据集实体对应的数据库类型;第二确定子模块,用于分别确定所述数据集实体和所述查询实体对应的sql语句;处理子模块,用于根据所述数据库类型对应的sql语法对所述sql语句进行拼接,获得所述sql查询语句。可选地,所述第二确定子模块包括第三确定子模块,用于根据预设的sql映射关系,分别确定所述数据集实体和所述查询实体对应的sql语句,其中,所述预设的sql映射关系包括:查询字段对应select语句;数据源对应from语句;过滤条件对应where语句或having语句,若所述过滤条件对应的表达式中包含聚合计算,所述过滤条件对应having语句;若所述过滤条件对应的表达式中不包含聚合计算,所述过滤条件对应where语句。可选地,所述预设的sql映射关系还包括:在所述查询字段为多个时,若一部分所述查询字段对应于聚合计算,则除对应于聚合计算的该部分查询字段外的其他查询字段还对应groupby语句。可选地,所述第三确定子模块包括:第一生成子模块,用于当所述第一数据源对应的数据表为一个时,则将所述数据表的数据表名作为表引用,生成所述第一数据源对应的from语句;第二生成子模块,用于当所述第一数据源对应的数据表为多个时,若多个数据表之间全部关联且不存在环状关联时,将各个所述数据表通过join语句进行关联作为表引用,生成所述第一数据源对应的from语句;第三生成子模块,用于对所述第二数据源对应的所述数据集实体调用生成子查询,将所述数据集实体的实体名作为表引用,生成所述第二数据源对应的fr本文档来自技高网...

【技术保护点】
1.一种数据查询方法,其特征在于,所述方法包括:根据接收到的数据集选择指令,确定数据集实体,其中,所述数据集实体中至少包括第一查询字段和第一数据源,所述第一数据源对应于数据表;根据接收到的查询选择指令,确定查询实体,其中,所述查询实体中至少包括第二查询字段和第二数据源,所述第二数据源对应于所述数据集实体;根据所述数据集实体和所述查询实体生成sql查询语句;根据所述sql查询语句查询与所述数据集实体对应的数据表,获得查询结果。

【技术特征摘要】
1.一种数据查询方法,其特征在于,所述方法包括:根据接收到的数据集选择指令,确定数据集实体,其中,所述数据集实体中至少包括第一查询字段和第一数据源,所述第一数据源对应于数据表;根据接收到的查询选择指令,确定查询实体,其中,所述查询实体中至少包括第二查询字段和第二数据源,所述第二数据源对应于所述数据集实体;根据所述数据集实体和所述查询实体生成sql查询语句;根据所述sql查询语句查询与所述数据集实体对应的数据表,获得查询结果。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据接收到的第一过滤指令,确定第一过滤条件,并将所述第一过滤条件添加至所述数据集实体;和/或根据接收到的第二过滤指令,确定第二过滤条件,并将所述第二过滤条件添加至所述查询实体。3.根据权利要求1所述的方法,其特征在于,所述根据所述数据集实体和所述查询实体生成sql查询语句,包括:确定所述数据集实体对应的数据库类型;分别确定所述数据集实体和所述查询实体对应的sql语句;根据所述数据库类型对应的sql语法对所述sql语句进行拼接,获得所述sql查询语句。4.根据权利要求3所述的方法,其特征在于,所述分别确定所述数据集实体和所述查询实体对应的sql语句,包括:根据预设的sql映射关系,分别确定所述数据集实体和所述查询实体对应的sql语句,其中,所述预设的sql映射关系包括:查询字段对应select语句;数据源对应from语句;过滤条件对应where语句或having语句,若所述过滤条件对应的表达式中包含聚合计算,所述过滤条件对应having语句;若所述过滤条件对应的表达式中不包含聚合计算,所述过滤条件对应where语句。5.根据权利要求4所述的方法,其特征在于,所述预设的sql映射关系还包括:在所述查询字段为多个时,若一部分所述查询字段对应于聚合计算,则除对应于聚合计算的该部分查询字段外的其他查询字段还对应groupby语句。6.根据权利要求4所述的方法,其特征在于,所述根据预设的sql映射关系,确定所述数据集实体和所述查询实体对应的sql语句,包括:当所述第一数据源对应的数据表为一个时,则将所述数据表的数据表名作为表引用,生成所述第一数据源对应的from语句;当所述第一数据源对应的数据表为多个时,若多个数据表之间全部关联且不存在环状关联时,将各个所述数据表通过join语句进行关联作为表引用,生成所述第一数据源对应的from语句;对所述第二数据...

【专利技术属性】
技术研发人员:房轶臣黄治纲
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁,21

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

1