数据库查询方法、装置和电子设备制造方法及图纸

技术编号:19964321 阅读:34 留言:0更新日期:2019-01-03 12:52
本申请提供一种数据库查询方法、装置和电子设备,包括:在接收到数据库查询指令后,确定所述数据库查询指令中的目标查询字段所在的目标数据表;根据所述目标数据表构建数据表有向图;从构建所述数据表有向图的所述目标数据表中选取一个目标数据表作为源数据表;基于所述数据表有向图,计算所述源数据表到构建所述数据表有向图的其他目标数据表的最短距离,并确定所述最短距离对应的最短路径;将所述最短路径途经的数据表进行连接,并基于连接结果进行查询。本申请技术方案可以节省数据库查询时的处理资源,提高查询速率。

Database query methods, devices and electronic devices

The application provides a database query method, device and electronic device, including: determining the target data table where the target query field in the database query instruction is located after receiving the database query instruction; constructing a directed graph of the data table according to the target data table; and selecting a target data table from the target data table that constructs the directed graph of the data table as a target data table. Source data table; based on the directed graph of the data table, calculate the shortest distance from the source data table to other target data tables that construct the directed graph of the data table, and determine the shortest path corresponding to the shortest distance; connect the data tables of the shortest path and query them based on the result of the connection. The application technical scheme can save processing resources and improve query speed in database query.

【技术实现步骤摘要】
数据库查询方法、装置和电子设备
本申请涉及数据库
,尤其涉及一种数据库查询方法、装置和电子设备。
技术介绍
数据库是按照数据结构来组织、存储和管理数据的仓库。目前,在数据库的组织与管理中,可以生成通用的数据表,用户选择想要查询的字段时,基于该数据库表可以查找到对应的数据。若用户想要查询的字段分布在多个数据表中,可以将数据表进行连接,基于连接的数据表为用户查找对应的数据。然而,随着数据表的增多,数据表的连接会耗费大量的时间和处理资源。
技术实现思路
有鉴于此,本申请提供一种数据库查询方法、装置和电子设备,以解决相关技术中耗费大量的时间和处理资源的问题。具体地,本申请是通过如下技术方案实现的:第一方面,本申请提供一种数据库查询方法,所述方法包括:在接收到数据库查询指令后,确定所述数据库查询指令中的目标查询字段所在的目标数据表;根据所述目标数据表构建数据表有向图;从构建所述数据表有向图的所述目标数据表中选取一个目标数据表作为源数据表;基于所述数据表有向图,计算所述源数据表到构建所述数据表有向图的其他目标数据表的最短距离,并确定所述最短距离对应的最短路径;将所述最短路径途经的数据表进行连接,并基于连接结果进行查询。第二方面,本申请提供一种数据库查询装置,其特征在于,所述装置包括:确定单元,用于在接收到数据库查询指令后,确定所述数据库查询指令中的目标查询字段所在的目标数据表;构建单元,用于根据所述目标数据表构建数据表有向图;选取单元,用于从构建所述数据表有向图的所述目标数据表中选取一个目标数据表作为源数据表;计算单元,用于基于所述数据表有向图,计算所述源数据表到构建所述数据表有向图的其他目标数据表的最短距离,并确定所述最短距离对应的最短路径;第一连接单元,用于将所述最短路径途经的数据表进行连接,并基于连接结果进行查询。第三方面,本申请提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,通过读取并执行所述存储器存储的与数据库查询控制逻辑对应的可执行指令,所述处理器执行:在接收到数据库查询指令后,确定所述数据库查询指令中的目标查询字段所在的目标数据表;根据所述目标数据表构建数据表有向图;从构建所述数据表有向图的所述目标数据表中选取一个目标数据表作为源数据表;基于所述数据表有向图,计算所述源数据表到构建所述数据表有向图的其他目标数据表的最短距离,并确定所述最短距离对应的最短路径;将所述最短路径途经的数据表进行连接,并基于连接结果进行查询。第四方面,本申请提供一种计算机可读存储介质,其中存储有计算机指令,所述指令被处理器执行时实现如上述方法的步骤。分析上述技术方案可知,本申请可以根据目标查询字段所在的目标数据表构建数据表有向图,基于有向图确定查询目标查询字段所要连接的数据表,并基于数据表连接结果进行查询。本申请在目标查询字段分布在多个数据表时,无需连接数据库中所有数据表,节省了数据库查询时的处理资源,提高了查询速率。附图说明图1是本申请一示例性实施例示出的一种数据库查询方法的流程图;图2是本申请一示例性实施例示出的另一种数据库查询方法的流程图;图3是本申请一示例性实施例示出的一种数据表有向图;图4是本申请一示例性实施例示出的另一种数据表有向图;图5是本申请一示例性实施例示出的另一种数据库查询方法的流程图;图6是本申请一示例性实施例示出的一种数据库查询装置所在设备的硬件结构图;图7是本申请一示例性实施例示出的一种数据库查询装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。相关技术中,如果用户想要查询的字段分布在多个数据表中,则会先将数据库中存储的所有数据表进行连接,再通过查询连接后的数据表,获取用户想要查询的字段。举例来说,假设数据库中存储有如下表1所示的订单维度数据表和如下表2所示的乘客维度数据表:用户名订单价格(元)订单时长(分钟)USER15036USER23016USER34328表1用户名年龄性别USER129女USER231女USER323男表2如果用户想要查询订单价格和性别这两个字段,则可以先将这两个表进行连接,再从中选择出订单价格和性别这两个字段。但由于数据库中存储的数据表的数量通常十分庞大,而其中极大部分数据表中可能并不包含用户想要查询的字段,因此将所有数据表进行连接会耗费大量的时间和处理资源。为了解决上述问题,请参考图1,为本申请一示例性实施例示出的一种数据库查询方法的流程图,所述数据库查询方法可以应用在支持数据库功能的服务器等设备中,包括如下步骤:步骤101:在接收到数据库查询指令后,确定所述数据库查询指令中的目标查询字段所在的目标数据表。在本实施例中,用户可以通过设备提供的界面输入数据库查询指令,来指示其想要查询的字段,即目标查询字段。设备在接收到数据库查询指令后,可以确定该数据库查询指令中的目标查询字段所在的数据表,在本实施例中,可将目标查询字段所在的数据表称为目标数据表。继续以上表1所示的订单维度数据表为例,若根据数据库查询指令确定订单价格和性别为目标查询字段,则可以将订单维度数据表1和乘客维度数据表2确定为目标数据表。步骤102:根据所述目标数据表构建数据表有向图。在本实施例中,根据前述步骤101中确定的目标数据表,可以构建数据表有向图。具体地,请参考图2,可以采用如下步骤根据所述目标数据表构建数据表有向图:步骤1021:对数据表进行遍历,针对遍历到的第一数据表,若所述第一数据表与第二数据表具有公共字段,则建立第一数据表到第二数据表的路径。步骤1022:若所述第一数据表为目标数据表,则将所述第一数据表到所述第二数据表的路径权重设置为第一权重;若所述第一数据表为非目标数据表,则将所述第一数据表到所述第二数据表的路径权重设置为第二权重;所述第二权重大于所述第一权重。在本实施例中,可以对数据库中存储的所有数据表进行遍历,针对遍历到的第一数据表,如果第一数据表与第二数据表具有公共字段,则可以建立第一数据表到第二数据表的路径,其中,所述第二数据表为除所述第一数据库之外的数据表。当然,在遍历到该第二数据表时,也可以建立该第二数据表到该第一数据表的路径。即当两个数据表具有公共字段时,可以在这两个数据本文档来自技高网...

【技术保护点】
1.一种数据库查询方法,其特征在于,所述方法包括:在接收到数据库查询指令后,确定所述数据库查询指令中的目标查询字段所在的目标数据表;根据所述目标数据表构建数据表有向图;从构建所述数据表有向图的所述目标数据表中选取一个目标数据表作为源数据表;基于所述数据表有向图,计算所述源数据表到构建所述数据表有向图的其他目标数据表的最短距离,并确定所述最短距离对应的最短路径;将所述最短路径途经的数据表进行连接,并基于连接结果进行查询。

【技术特征摘要】
1.一种数据库查询方法,其特征在于,所述方法包括:在接收到数据库查询指令后,确定所述数据库查询指令中的目标查询字段所在的目标数据表;根据所述目标数据表构建数据表有向图;从构建所述数据表有向图的所述目标数据表中选取一个目标数据表作为源数据表;基于所述数据表有向图,计算所述源数据表到构建所述数据表有向图的其他目标数据表的最短距离,并确定所述最短距离对应的最短路径;将所述最短路径途经的数据表进行连接,并基于连接结果进行查询。2.根据权利要求1所述的方法,其特征在于,所述根据所述目标数据表构建数据表有向图,包括:对数据表进行遍历,针对遍历到的第一数据表,若所述第一数据表与第二数据表具有公共字段,则建立第一数据表到第二数据表的路径;若所述第一数据表为目标数据表,则将所述第一数据表到所述第二数据表的路径权重设置为第一权重;若所述第一数据表为非目标数据表,则将所述第一数据表到所述第二数据表的路径权重设置为第二权重;所述第二权重大于所述第一权重。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:若存在所述源数据表不可达的目标数据表,则对所有数据表进行连接,并基于连接结果进行查询。4.根据权利要求1所述的方法,其特征在于,所述从构建所述数据表有向图的所述目标数据表中选取一个目标数据表作为源数据表,包括:从构建所述数据包有向图的所述目标数据表中随机选取一个目标数据表作为源数据表。5.根据权利要求1所述的方法,其特征在于,所述将所述最短路径途经的数据表进行连接,包括:遍历每条最短路径,针对遍历到的最短路径,依次判断该最短路径途经的数据表是否已加入的连接集合;所述连接集合初始为空;若所述数据表未加入连接集合,则将所述数据表加入到所述连接集合中;在遍历结束后,将所述连接集合中的数据表进行连接。6.一种数据库查询装置,其特征在于,所述装置包括:确定单元,用于在接收到数据库查询指令后,确定所述数据库查询指令中的目标查询字段所在的目标数据表;构建单元,用于根据所述目标数据表构建数据表有向图;选取单元,用于从构建所述数据表有向图的所述目标数据表中选取一个目标数据表作为源数据表;计算单元,用于基于所述数据表有向图,计算所述源数据表到构建所述数据表有向图的其他目标数据表的最短距...

【专利技术属性】
技术研发人员:李思旭万祥李佩杨帆
申请(专利权)人:北京嘀嘀无限科技发展有限公司
类型:发明
国别省市:北京,11

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

1
相关领域技术
  • 暂无相关专利