多维数据库查询方法及装置的制造方法_4

文档序号:9787448阅读:来源:国知局
SQL语句。
[0151] 在其中一个实施例中,查询树生成模块104还用于按照预设的字段顺序遍历数据 表字段,在所述遍历到的关键字集合中查找与所述遍历到的数据表字段对应的关键字,根 据查找到的关键字以及查找顺序生成由所述树对象的根节点到叶节点的路径。
[0152] 在其中一个实施例中,查询树合并模块104还用于由所述树对象的叶节点向根节 点进行遍历,逐层将对应的子节点包含相同关键字组的且对应同一父节点的树节点合并。
[0153] 在其中一个实施例中,语句生成模块108还用于接收输入或预设的分组数据表字 段,使用Group By语句将所述分组数据表字段添加到所述生成的SQL语句中。
[0154] 在其中一个实施例中,参数接收模块102还用于获取所述多维查询参数中的关键 字对应的数据表字段的枚举类型,将所述多维查询参数中的关键字转换成与该关键字对应 的数据表字段的枚举类型的关键字。
[0155] 实施本发明实施例,将具有如下有益效果:
[0156] 采用了上述多维数据库查询方法及装置之后,对于输入的多维查询参数,先生成 树对象,树对象中包含了与多维查询参数中的每组关键字集合对应的由根节点到叶节点的 多条路径,然后对树对象进行合并,将该多条路径合并为较少的合并关键字为关键字组的 路径,然后根据该路径利用SQL语言中的IN操作符生成SQL语句,其中包含的由OR操作符连 接的查询条件的个数则精简到了树对象进行合并后包含的路径的数量,而传统技术中生成 的SQL语句中包含的由OR操作符连接的查询条件的个数为树对象合并前包含的路径的数 量,因此,和传统技术相比,本发明生成的SQL语句的长度得到了精简,从而降低了维护难 度,也提高了执行效率。
[0157] 在一个实施例中,如图10所示,图10展示了一种运行上述多维数据库查询方法的 基于冯诺依曼体系的计算机系统10。该计算机系统10可以是智能手机、平板电脑、掌上电 脑,笔记本电脑或个人电脑等终端设备。具体的,可包括通过系统总线连接的外部输入接口 1001、处理器1002、存储器1003和输出接口 1004。其中,外部输入接口 1001可选的至少可包 括网络接口 10012。存储器1003可包括外存储器10032(例如硬盘、光盘或软盘等)和内存储 器10034。输出接口 1004可包括显示屏10042和音响/喇叭10044等设备。
[0158] 在本实施例中,本方法的运行基于计算机程序,该计算机程序的程序文件存储于 前述基于冯诺依曼体系的计算机系统10的外存储器10032中,在运行时被加载到内存储器 10034中,然后被编译为机器码之后传递至处理器1002中执行,从而使得基于冯诺依曼体系 的计算机系统10中形成逻辑上的参数接收模块102,查询树生成模块104,查询树合并模块 106和语句生成模块108。且在上述多维数据库查询方法执行过程中,输入的参数均通过外 部输入接口 1001接收,并传递至存储器1003中缓存,然后输入到处理器1002中进行处理,处 理的结果数据或缓存于存储器1003中进行后续地处理,或被传递至输出接口 1004进行输 出。
[0159]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范 围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【主权项】
1. 一种多维数据库查询方法,其特征在于,包括: 接收输入的多维查询参数,所述多维查询参数包含至少一个关键字集合,所述关键字 集合中的关键字各自对应一个预设的数据表字段; 生成树对象,遍历所述关键字集合,根据预设的字段顺序将所述遍历到的关键字集合 中的关键字排列,生成由所述树对象的根节点到叶节点的路径添加到所述树对象中,所述 路径上的树节点与所述关键字集合中的关键字按照所述字段顺序一一对应; 将所述树对象中递归包含有相同子节点的且对应同一父节点的树节点合并,所述合并 得到的树节点中包含被合并的树节点中的关键字构成的关键字组; 遍历所述合并后的树对象中每个根节点到叶节点的路径,获取遍历到的路径上的树节 点中的关键字组,根据in操作符生成遍历到的路径对应的查询条件式,通过or操作符连接 所有路径对应的查询条件式生成SQL语句。2. 根据权利要求1所述的多维数据库查询方法,其特征在于,所述根据预设的字段顺序 将所述遍历到的关键字集合中的关键字排列,生成由所述树对象的根节点到叶节点的路径 添加到所述树对象中的步骤还包括: 按照预设的字段顺序遍历数据表字段,在所述遍历到的关键字集合中查找与所述遍历 到的数据表字段对应的关键字,根据查找到的关键字以及查找顺序生成由所述树对象的根 节点到叶节点的路径。3. 根据权利要求1所述的多维数据库查询方法,其特征在于,所述将所述树对象中递归 包含有相同子节点的且对应同一父节点的树节点合并的步骤还包括: 由所述树对象的叶节点向根节点进行遍历,逐层将对应的子节点包含相同关键字组的 且对应同一父节点的树节点合并。4. 根据权利要求1所述的多维数据库查询方法,其特征在于,所述通过or操作符连接所 有路径对应的查询条件式生成SQL语句的步骤还包括: 接收输入或预设的分组数据表字段,使用Group By语句将所述分组数据表字段添加到 所述生成的SQL语句中。5. 根据权利要求1至4任一项所述的多维数据库查询方法,其特征在于,所述接收输入 的多维查询参数的步骤之后还包括: 获取所述多维查询参数中的关键字对应的数据表字段的枚举类型,将所述多维查询参 数中的关键字转换成与该关键字对应的数据表字段的枚举类型的关键字。6. -种多维数据库查询装置,其特征在于,包括: 参数接收模块,用于接收输入的多维查询参数,所述多维查询参数包含至少一个关键 字集合,所述关键字集合中的关键字各自对应一个预设的数据表字段; 查询树生成模块,用于生成树对象,遍历所述关键字集合,根据预设的字段顺序将所述 遍历到的关键字集合中的关键字排列,生成由所述树对象的根节点到叶节点的路径添加到 所述树对象中,所述路径上的树节点与所述关键字集合中的关键字按照所述字段顺序一一 对应; 查询树合并模块,用于将所述树对象中递归包含有相同子节点的且对应同一父节点的 树节点合并,所述合并得到的树节点中包含被合并的树节点中的关键字构成的关键字组; 语句生成模块,用于遍历所述合并后的树对象中每个根节点到叶节点的路径,获取遍 历到的路径上的树节点中的关键字组,根据in操作符生成遍历到的路径对应的查询条件 式,通过or操作符连接所有路径对应的查询条件式生成SQL语句。7. 根据权利要求6所述的多维数据库查询装置,其特征在于,所述查询树生成模块还用 于按照预设的字段顺序遍历数据表字段,在所述遍历到的关键字集合中查找与所述遍历到 的数据表字段对应的关键字,根据查找到的关键字以及查找顺序生成由所述树对象的根节 点到叶节点的路径。8. 根据权利要求6所述的多维数据库查询装置,其特征在于,所述查询树合并模块还用 于由所述树对象的叶节点向根节点进行遍历,逐层将对应的子节点包含相同关键字组的且 对应同一父节点的树节点合并。9. 根据权利要求6所述的多维数据库查询装置,其特征在于,所述语句生成模块还用于 接收输入或预设的分组数据表字段,使用Group By语句将所述分组数据表字段添加到所述 生成的SQL语句中。10. 根据权利要求6至9任一项所述的多维数据库查询装置,其特征在于,所述参数接收 模块还用于获取所述多维查询参数中的关键字对应的数据表字段的枚举类型,将所述多维 查询参数中的关键字转换成与该关键字对应的数据表字段的枚举类型的关键字。
【专利摘要】本发明实施例公开了一种多维数据库查询方法,包括:接收输入的多维查询参数;生成树对象,遍历所述关键字集合,根据预设的字段顺序将所述遍历到的关键字集合中的关键字排列,生成由所述树对象的根节点到叶节点的路径添加到所述树对象中;将所述树对象中递归包含有相同子节点的且对应同一父节点的树节点合并;遍历所述合并后的树对象中每个根节点到叶节点的路径,获取遍历到的路径上的树节点中的关键字组,根据in操作符生成遍历到的路径对应的查询条件式,通过or操作符连接所有路径对应的查询条件式生成SQL语句。本发明中多维数据库查询方法可以生成较短的SQL语句,利于维护。
【IPC分类】G06F17/30
【公开号】CN105550241
【申请号】CN201510896785
【发明人】王方广
【申请人】珠海多玩信息技术有限公司
【公开日】2016年5月4日
【申请日】2015年12月7日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1