CN110019294A - 一种数据库查询脚本的生成方法、数据库查询方法及装置 - Google Patents

一种数据库查询脚本的生成方法、数据库查询方法及装置 Download PDF

Info

Publication number
CN110019294A
CN110019294A CN201710847616.6A CN201710847616A CN110019294A CN 110019294 A CN110019294 A CN 110019294A CN 201710847616 A CN201710847616 A CN 201710847616A CN 110019294 A CN110019294 A CN 110019294A
Authority
CN
China
Prior art keywords
data
tables
connection relationship
query
script
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710847616.6A
Other languages
English (en)
Inventor
蒋亚飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201710847616.6A priority Critical patent/CN110019294A/zh
Publication of CN110019294A publication Critical patent/CN110019294A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing

Abstract

本发明公开了一种数据库查询脚本的生成方法、数据库查询方法及装置,其中查询脚本的生成方法中包括:获得查询请求,所述查询请求包括查询参数;基于所述查询参数,获得待查询的第一数据表和第二数据表;基于所述第一数据表与所述第二数据表,生成查询脚本,所述查询脚本用于调整所述第一数据表与所述第二数据表之间的表连接关系,并基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。本申请中基于数据表的表连接关系所生成的查询脚本,能够在对数据表进行查询时动态对数据表之间的表连接关系进行调整,从而避免由于表连接关系不合适所造成的查询结果出错的情况,从而提高查询结果的准确性及可靠性。

Description

一种数据库查询脚本的生成方法、数据库查询方法及装置
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据库查询脚本的生成方法、数据库查询方法及装置。
背景技术
在数据库的各种数据表中进行数据查询时,通常需要构造数据库查询脚本,通过运行数据库查询脚本实现对数据表的查询操作。例如,根据输入的数据表查询参数(如CommonQuery)来构造SQLScript脚本。
在传统的脚本生成方案中,通常依靠元数据(Metadata)中配置的数据表与数据表之间的连接关系或连接方式来生成查询脚本,如内连接(InnerJoin)、左连接(leftJoin)等。而在两个数据表的表连接为左连接时,如果右表出现过滤条件,那么所生成的查询脚本进行数据表查询时会产生错误的查询结果。
因此,亟需一种能够准确获得查询结果的数据库查询脚本的生成方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种数据库查询脚本的生成方法、数据库查询方法及装置,用以解决现有技术中所生成的查询脚本存在查询不准确的技术问题。
本申请还提供了一种数据库查询脚本的生成方法,包括:
获得查询请求,所述查询请求包括查询参数;
基于所述查询参数,获得待查询的第一数据表和第二数据表;
基于所述第一数据表与所述第二数据表,生成查询脚本,所述查询脚本用于调整所述第一数据表与所述第二数据表之间的表连接关系,并基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
上述方法,优选地,所述基于所述第一数据表与所述第二数据表的表连接关系,生成查询脚本,包括:
解析所述查询参数,得到所述第一数据表与所述第二数据表各自的表属性及所述第一数据表与所述第二数据表之间的表连接关系;
如果所述第一数据表为维度表、所述第二数据表存在过滤条件且所述第一数据表与所述第二数据表之间的表连接关系为左连接关系,基于所述左连接关系,生成查询脚本,所述查询脚本用于:调整所述第一数据表与所述第二数据表的表连接关系为内连接关系,并基于表连接关系被调整为内连接关系后的第一数据表和第二数据数据表进行数据查询。
本申请还提供了一种数据库查询方法,包括:
获得待查询的第一数据表及第二数据表;
调整所述第一数据表与所述第二数据表之间的表连接关系;
基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
上述方法,优选地,所述调整所述第一数据表与所述第二数据表之间的表连接关系,包括:
获得所述第一数据表与所述第二数据表各自的表属性及所述第一数据表与所述第二数据表之间的表连接关系;
如果所述第一数据表为维度表、所述第二数据表存在过滤条件且所述第一数据表与所述第二数据表之间的表连接关系为左连接关系,调整所述第一数据表与所述第二数据表之间的表连接关系为内连接关系。
本申请还提供了一种数据库查询脚本的生成装置,包括:
请求获得单元,用于获得查询请求,所述查询请求包括查询参数;
表获得单元,用于基于所述查询参数,获得待查询的第一数据表和第二数据表;
脚本生成单元,用于基于所述第一数据表与所述第二数据表,生成查询脚本,所述查询脚本用于调整所述第一数据表与所述第二数据表之间的表连接关系,并基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
本申请还提供了一种数据库查询装置,包括:
表获取单元,用于获得待查询的第一数据表及第二数据表;
连接调整单元,用于调整所述第一数据表与所述第二数据表之间的表连接关系;
表查询单元,用于基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
本申请还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行上述任意一项所述的数据库查询脚本的生成方法。
本申请还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的数据库查询脚本的生成方法。
本申请还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行上述任意一项所述的数据库查询方法。
本申请还提供了另一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的数据库查询方法。
借由上述技术方案,本发明提供的一种数据库查询脚本的生成方法、数据库查询方法及装置,基于数据表的表连接关系所生成的查询脚本,能够在对数据表进行查询时动态对数据表之间的表连接关系进行调整,从而避免由于表连接关系不合适所造成的查询结果出错的情况,从而提高查询结果的准确性及可靠性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请实施例一提供的一种数据库查询脚本的生成方法的流程图;
图2示出了本申请实施例一提供的一种数据库查询脚本的生成方法中步骤103的流程图;
图3示出了本申请实施例二提供的一种数据库查询方法的流程图;
图4示出了本申请实施例二提供的一种数据库查询方法中步骤302的流程图;
图5示出了本申请实施例三提供的一种数据库查询脚本的生成装置的结构示意图;
图6a示出了本申请实施例三提供的一种数据库查询脚本的生成装置中脚本生成单元503的结构示意图;
图6b示出了本申请实施例提供的一种存储介质的结构示意图;
图6c示出了本申请实施例提供的一种处理器的结构示意图;
图6d示出了本申请实施例提供的一种设备的结构示意图;
图7示出了本申请实施例四提供的一种数据库查询装置的结构示意图;
图8a示出了本申请实施例四提供的一种数据库查询装置中连接调整单元702的结构示意图;
图8b示出了本申请实施例提供的另一种存储介质的结构示意图;
图8c示出了本申请实施例提供的另一种处理器的结构示意图;
图8d示出了本申请实施例提供的另一种设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参考图1,为本申请实施例一提供的一种数据库查询脚本的生成方法的实现流程图,其中,适用于对数据库中的数据表进行数据查询时构造相应的查询脚本。
在本实施例中,所述方法可以包括以下步骤:
步骤101:获得查询请求。
其中,查询请求是指用户需要进行查询时所生成的请求,该查询请求中包含数据库中待查询的数据表及查询关键词等。
步骤102:基于查询参数,获得待查询的第一数据表和第二数据表。
本实施例中,可以通过对查询参数进行解析,确定数据库中待查询的数据表:第一数据表和第二数据表。两个数据表之间存在相应的表连接关系,如左连接关系、内连接关系或右连接关系等(其中,右连接关系较为少见)。
步骤103:基于第一数据表和第二数据表,生成查询脚本。
其中,查询脚本用于调整第一数据表和第二数据表之间的表连接关系,并基于表连接关系被调整后的第一数据表和第二数据表进行查询。
也就是说,本实施例中,在生成查询脚本时,是依赖于被查询的数据表之间的表连接关系的,从而使得生成的查询脚本在进行数据查询时能够动态对表连接关系进行调整,以使得表连接关系调整后的数据表处于最佳的被查询状态,由此使得查询得到的结果更加准确。
由上述技术方案,本发明实施例一提供的一种数据库查询脚本的生成方法,基于数据表的表连接关系所生成的查询脚本,能够在对数据表进行查询时动态对数据表之间的表连接关系进行调整,从而避免由于表连接关系不合适所造成的查询结果出错的情况,从而提高查询结果的准确性及可靠性。
在一种实现方式中,图1中的步骤103可以通过以下步骤实现,如图2中所示:
步骤201:解析查询参数,得到第一数据表和第二数据表各自的表属性以及第一数据表与第二数据表之间的表连接关系。
其中,表属性可以包括有:数据表是否为维度表、数据表是否存在(出现)过滤条件等属性。而表连接关系可以为左连接关系或者内连接关系等。
步骤202:如果第一数据表为维度表、第二数据表存在过滤条件且第一数据表与第二数据表之间的表连接关系为左连接关系,基于左连接关系生成查询脚本。
其中,基于左连接关系生成的查询脚本用于:调整第一数据表与第二数据表的表连接关系为内连接关系,并基于表连接关系被调整为内连接关系后的第一数据表和第二数据数据表进行数据查询。
过滤条件是指查询过程中需要过滤掉不需要的数据,只剩下与查询关键词相关联的数据,例如,在两个数据表中查询学生信息,过滤条件为姓名为王的学生。
也就是说,本实施例中在生成查询脚本时,需要判断被查询的两个数据表是否为左连接关系,也要判断左连接关系下的两个数据表中左表是否为维度表且右表出现了过滤条件,如果所述第一数据表为维度表、所述第二数据表存在过滤条件且所述第一数据表与所述第二数据表之间的表连接关系为左连接关系,那么此时所生成的查询脚本在进行数据查询时,会动态将左连接关系调整为内连接关系,再对内连接关系的两个数据表进行数据查询,从而提高数据查询结果的准确率。
参考图3,为本申请实施例二提供的一种数据库查询方法的实现流程图,适用于对数据库中的数据表进行查询。
其中,本实施例中的方法可以通过图1中所生成的查询脚本实现,具体可以包括以下步骤:
步骤301:获得待查询的第一数据表和第二数据表。
其中,本实施例中可以根据查询请求中的查询参数来确定数据库中待查询的数据表,如第一数据表和第二数据表。
步骤302:调整第一数据表和第二数据表之间的表连接关系。
在一种实现方式中,本实施例可以通过如图4中所示的步骤来调整两个待查询的数据表之间的表连接关系,如下:
步骤401:获得所述第一数据表与所述第二数据表各自的表属性及所述第一数据表与所述第二数据表之间的表连接关系。
其中,表属性可以包括有:数据表是否为维度表、数据表是否存在(出现)过滤条件等属性。而表连接关系可以为左连接关系或者内连接关系等。
步骤402:基于表属性及表连接关系,判断表连接关系是否为左连接关系、第一数据表是否为维度表且第二数据表是否为出现过滤条件,如果所述第一数据表为维度表、所述第二数据表存在过滤条件且所述第一数据表与所述第二数据表之间的表连接关系为左连接关系,执行步骤403。
其中,过滤条件是指查询过程中需要过滤掉不需要的数据,只剩下与查询关键词相关联的数据。
步骤403:调整所述第一数据表与所述第二数据表之间的表连接关系为内连接关系。
也就是说,本实施例中在数据表中查询数据时,首先要判断被查询的两个数据表是否为左连接关系,也要判断左连接关系下的两个数据表中左表是否为维度表且右表出现了过滤条件,如果所述第一数据表为维度表、所述第二数据表存在过滤条件且所述第一数据表与所述第二数据表之间的表连接关系为左连接关系,那么此时动态将左连接关系调整为内连接关系,也就是将第一数据表与第二数据表之间的左连接关系调整为内连接关系。
步骤303:基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
也就是说,本实施例在实际进行数据表查询时,是对已经被调整为内连接关系的两个数据表进行查询,从而得到查询结果。
以下对本实施例的应用实例进行说明:
假设有A表和B表,为数据库中待查询的两个表,两个表的关系为A表通过ID左连接B表(通过ID连接),两个表中的数据如下:
A表
ID A name
1 Tom
2 Bob
3 Tony
B表
ID B address
1 北京
2 上海
A表左连接B表的结果为C表,如下:
C表
ID A name B address
1 Tom 北京
2 Bob 上海
3 Tony Null
但是当左连接关系中的右表出现过滤条件时,即B表出现过滤条件,如过滤条件“Baddress=北京”,那么B表中只剩下如下数据,如D表:
D表
ID B address
1 北京
而如果依然基于左连接关系进行数据查询后,则出现以下结果,如E表:
E表
ID A name B address
1 Tom 北京
2 Bob Null
3 Tony Null
由此,查询结果会出现错误。
在本实施例中,将A表与B表进行内连接,从而在进行数据查询后得到数据查询结果,如F表:
F表
ID A name B address
1 Tom 北京
从而通过将右表出现过滤条件的左连接数据表的表关系动态调整为内连接,来避免查询结果中的错误,由此来提高数据查询的准确性。
由上述技术方案,本发明实施例二提供的一种数据库查询方法,通过对数据表进行查询时动态对数据表之间的表连接关系进行动态调整,从而避免由于表连接关系不合适所造成的查询结果出错的情况,从而提高查询结果的准确性及可靠性。
参考图5,为本申请实施例三提供的一种数据库查询脚本的生成装置的结构示意图,该装置可以包括以下结构:
请求获得单元501,用于获得查询请求。
其中,查询请求是指用户需要进行查询时所生成的请求,该查询请求中包含数据库中待查询的数据表及查询关键词等。
表获得单元502,用于基于所述查询参数,获得待查询的第一数据表和第二数据表。
本实施例中,可以通过对查询参数进行解析,确定数据库中待查询的数据表:第一数据表和第二数据表。两个数据表之间存在相应的表连接关系,如左连接关系、内连接关系或右连接关系等(其中,右连接关系较为少见)。
脚本生成单元503,用于基于所述第一数据表与所述第二数据表,生成查询脚本。
其中,查询脚本用于调整第一数据表和第二数据表之间的表连接关系,并基于表连接关系被调整后的第一数据表和第二数据表进行查询。
也就是说,本实施例中,在生成查询脚本时,是依赖于被查询的数据表之间的表连接关系的,从而使得生成的查询脚本在进行数据查询时能够动态对表连接关系进行调整,以使得表连接关系调整后的数据表处于最佳的被查询状态,由此使得查询得到的结果更加准确。
本实施例中的数据库查询脚本的生成装置可以包括处理器和存储器,上述各个程序单元以安装包或处理类的形式存储在存储器中,同时存储器中还存储有预先设置的配置文件,处理器通过调用安装包处理类,来执行以上各个程序单元,实现相应的功能。
具体的,处理器中包含内核,由内核去存储器中调取相应的程序单元,内核可以设置一个或多个,通过调整内核参数来获得查询请求,所述查询请求包括查询参数,基于所述查询参数,获得待查询的第一数据表和第二数据表,基于所述第一数据表与所述第二数据表,生成查询脚本,所述查询脚本用于调整所述第一数据表与所述第二数据表之间的表连接关系,并基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
其中,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
由上述技术方案,本发明实施例三提供的一种数据库查询脚本的生成装置,基于数据表的表连接关系所生成的查询脚本,能够在对数据表进行查询时动态对数据表之间的表连接关系进行调整,从而避免由于表连接关系不合适所造成的查询结果出错的情况,从而提高查询结果的准确性及可靠性。
在一种实现方式中,图5中的脚本生成单元503可以通过以下结构实现,如图6a中所示:
参数解析模块601,用于解析所述查询参数,得到所述第一数据表与所述第二数据表各自的表属性及所述第一数据表与所述第二数据表之间的表连接关系。
其中,表属性可以包括有:数据表是否为维度表、数据表是否存在(出现)过滤条件等属性。而表连接关系可以为左连接关系或者内连接关系等。
脚本生成模块602,用于如果所述第一数据表为维度表、所述第二数据表存在过滤条件且所述第一数据表与所述第二数据表之间的表连接关系为左连接关系,基于所述左连接关系,生成查询脚本。
其中,所述查询脚本用于:调整所述第一数据表与所述第二数据表的表连接关系为内连接关系,并基于表连接关系被调整为内连接关系后的第一数据表和第二数据数据表进行数据查询。
其中,基于左连接关系生成的查询脚本用于:调整第一数据表与第二数据表的表连接关系为内连接关系,并基于表连接关系被调整为内连接关系后的第一数据表和第二数据数据表进行数据查询。
过滤条件是指查询过程中需要过滤掉不需要的数据,只剩下与查询关键词相关联的数据,例如,在两个数据表中查询学生信息,过滤条件为姓名为王的学生。
也就是说,本实施例中在生成查询脚本时,需要判断被查询的两个数据表是否为左连接关系,也要判断左连接关系下的两个数据表中左表是否为维度表且右表出现了过滤条件,如果所述第一数据表为维度表、所述第二数据表存在过滤条件且所述第一数据表与所述第二数据表之间的表连接关系为左连接关系,那么此时所生成的查询脚本在进行数据查询时,会动态将左连接关系调整为内连接关系,再对内连接关系的两个数据表进行数据查询,从而提高数据查询结果的准确率。
本发明实施例提供了一种存储介质,如图6b中所示,该存储介质处于设备上,而该存储介质上存储有程序,该程序运行时控制该存储介质所在的设备执行图1至图2中所描述或展示的数据查询脚本的生成方法。
本发明实施例提供了一种处理器,如图6c中所示,该处理器用于运行程序,该程序可以为图6b所示的存储介质中存储的程序,由此,处理器通过运行程序执行图1至图2中所描述或展示的数据查询脚本的生成方法。
本发明实施例提供了一种设备,如图6d中设备的结构示意图所示,该电子设备中可以包括处理器、存储器及存储在存储器上并可在处理器上运行的应用程序,处理器执行应用程序时实现以下步骤:获得查询请求,所述查询请求包括查询参数,基于所述查询参数,获得待查询的第一数据表和第二数据表,基于所述第一数据表与所述第二数据表,生成查询脚本,所述查询脚本用于调整所述第一数据表与所述第二数据表之间的表连接关系,并基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
其中,本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获得查询请求,所述查询请求包括查询参数,基于所述查询参数,获得待查询的第一数据表和第二数据表,基于所述第一数据表与所述第二数据表,生成查询脚本,所述查询脚本用于调整所述第一数据表与所述第二数据表之间的表连接关系,并基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
参考图7,为本申请实施例四提供的一种数据库查询装置的结构示意图,适用于对数据库中的数据表进行查询。
其中,本实施例中的装置可以通过图5中所生成的查询脚本实现,具体可以包括以下结构:
表获取单元701,用于获得待查询的第一数据表及第二数据表。
其中,本实施例中可以根据查询请求中的查询参数来确定数据库中待查询的数据表,如第一数据表和第二数据表。
连接调整单元702,用于调整所述第一数据表与所述第二数据表之间的表连接关系。
在一种实现方式中,本实施例中的连接调整单元702可以通过如图8a中的结构实现:
信息获得模块801,用于获得所述第一数据表与所述第二数据表各自的表属性及所述第一数据表与所述第二数据表之间的表连接关系。
其中,表属性可以包括有:数据表是否为维度表、数据表是否存在(出现)过滤条件等属性。而表连接关系可以为左连接关系或者内连接关系等。
内连接调整模块802,用于基于表属性及表连接关系,判断表连接关系是否为左连接关系、第一数据表是否为维度表且第二数据表是否为出现过滤条件,如果所述第一数据表为维度表、所述第二数据表存在过滤条件且所述第一数据表与所述第二数据表之间的表连接关系为左连接关系,调整所述第一数据表与所述第二数据表之间的表连接关系为内连接关系。
其中,过滤条件是指查询过程中需要过滤掉不需要的数据,只剩下与查询关键词相关联的数据。
也就是说,本实施例中在数据表中查询数据时,首先要判断被查询的两个数据表是否为左连接关系,也要判断左连接关系下的两个数据表中左表是否为维度表且右表出现了过滤条件,如果所述第一数据表为维度表、所述第二数据表存在过滤条件且所述第一数据表与所述第二数据表之间的表连接关系为左连接关系,那么此时动态将左连接关系调整为内连接关系,也就是将第一数据表与第二数据表之间的左连接关系调整为内连接关系。
表查询单元703,用于基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
也就是说,本实施例在实际进行数据表查询时,是对已经被调整为内连接关系的两个数据表进行查询,从而得到查询结果。本实施例在具体实现中的应用可以参考前文中A表与B表的查询举例,此处不再详述。
本实施例中的数据库查询装置可以包括处理器和存储器,上述各个程序单元以安装包或处理类的形式存储在存储器中,同时存储器中还存储有预先设置的配置文件,处理器通过调用安装包处理类,来执行以上各个程序单元,实现相应的功能。
具体的,处理器中包含内核,由内核去存储器中调取相应的程序单元,内核可以设置一个或多个,通过调整内核参数来获得待查询的第一数据表及第二数据表;调整所述第一数据表与所述第二数据表之间的表连接关系;基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
其中,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
由上述技术方案,本发明实施例四提供的一种数据库查询装置,通过对数据表进行查询时动态对数据表之间的表连接关系进行动态调整,从而避免由于表连接关系不合适所造成的查询结果出错的情况,从而提高查询结果的准确性及可靠性。
本发明实施例提供了一种存储介质,如图8b中所示,该存储介质处于设备上,而该存储介质上存储有程序,该程序运行时控制该存储介质所在的设备执行图3至图4中所描述或展示的数据查询方法。
本发明实施例提供了一种处理器,如图8c中所示,该处理器用于运行程序,该程序可以为图8b所示的存储介质中存储的程序,由此,处理器通过运行程序执行图3至图4中所描述或展示的数据查询方法。
本发明实施例提供了一种设备,如图8d中设备的结构示意图所示,该电子设备中可以包括处理器、存储器及存储在存储器上并可在处理器上运行的应用程序,处理器执行应用程序时实现以下步骤:获得待查询的第一数据表及第二数据表;调整所述第一数据表与所述第二数据表之间的表连接关系;基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
其中,本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获得待查询的第一数据表及第二数据表;调整所述第一数据表与所述第二数据表之间的表连接关系;基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种数据库查询脚本的生成方法,其特征在于,包括:
获得查询请求,所述查询请求包括查询参数;
基于所述查询参数,获得待查询的第一数据表和第二数据表;
基于所述第一数据表与所述第二数据表,生成查询脚本,所述查询脚本用于调整所述第一数据表与所述第二数据表之间的表连接关系,并基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一数据表与所述第二数据表的表连接关系,生成查询脚本,包括:
解析所述查询参数,得到所述第一数据表与所述第二数据表各自的表属性及所述第一数据表与所述第二数据表之间的表连接关系;
如果所述第一数据表为维度表、所述第二数据表存在过滤条件且所述第一数据表与所述第二数据表之间的表连接关系为左连接关系,基于所述左连接关系,生成查询脚本,所述查询脚本用于:调整所述第一数据表与所述第二数据表的表连接关系为内连接关系,并基于表连接关系被调整为内连接关系后的第一数据表和第二数据数据表进行数据查询。
3.一种数据库查询方法,其特征在于,包括:
获得待查询的第一数据表及第二数据表;
调整所述第一数据表与所述第二数据表之间的表连接关系;
基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
4.根据权利要求3所述的方法,其特征在于,所述调整所述第一数据表与所述第二数据表之间的表连接关系,包括:
获得所述第一数据表与所述第二数据表各自的表属性及所述第一数据表与所述第二数据表之间的表连接关系;
如果所述第一数据表为维度表、所述第二数据表存在过滤条件且所述第一数据表与所述第二数据表之间的表连接关系为左连接关系,调整所述第一数据表与所述第二数据表之间的表连接关系为内连接关系。
5.一种数据库查询脚本的生成装置,其特征在于,包括:
请求获得单元,用于获得查询请求,所述查询请求包括查询参数;
表获得单元,用于基于所述查询参数,获得待查询的第一数据表和第二数据表;
脚本生成单元,用于基于所述第一数据表与所述第二数据表,生成查询脚本,所述查询脚本用于调整所述第一数据表与所述第二数据表之间的表连接关系,并基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
6.一种数据库查询装置,其特征在于,包括:
表获取单元,用于获得待查询的第一数据表及第二数据表;
连接调整单元,用于调整所述第一数据表与所述第二数据表之间的表连接关系;
表查询单元,用于基于表连接关系被调整后的第一数据表和第二数据数据表进行数据查询。
7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行权利要求1至2中任意一项所述的数据库查询脚本的生成方法。
8.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至2中任意一项所述的数据库查询脚本的生成方法。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行权利要求3至4中任意一项所述的数据库查询方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求3至4中任意一项所述的数据库查询方法。
CN201710847616.6A 2017-09-19 2017-09-19 一种数据库查询脚本的生成方法、数据库查询方法及装置 Pending CN110019294A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710847616.6A CN110019294A (zh) 2017-09-19 2017-09-19 一种数据库查询脚本的生成方法、数据库查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710847616.6A CN110019294A (zh) 2017-09-19 2017-09-19 一种数据库查询脚本的生成方法、数据库查询方法及装置

Publications (1)

Publication Number Publication Date
CN110019294A true CN110019294A (zh) 2019-07-16

Family

ID=67186304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710847616.6A Pending CN110019294A (zh) 2017-09-19 2017-09-19 一种数据库查询脚本的生成方法、数据库查询方法及装置

Country Status (1)

Country Link
CN (1) CN110019294A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593203A (zh) * 2009-05-12 2009-12-02 用友软件股份有限公司 带有前处理和后处理的数据库复合查询系统及方法
US20140149357A1 (en) * 2012-11-26 2014-05-29 Amazon Technologies, Inc. Block restore ordering in a streaming restore system
CN106649073A (zh) * 2015-10-28 2017-05-10 中国移动通信集团公司 一种基于动态脚本模板的测试方法及装置
CN106802901A (zh) * 2015-11-26 2017-06-06 北京国双科技有限公司 数据库查询的方法及装置
CN106933929A (zh) * 2015-12-31 2017-07-07 北京国双科技有限公司 调整数据表连接的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101593203A (zh) * 2009-05-12 2009-12-02 用友软件股份有限公司 带有前处理和后处理的数据库复合查询系统及方法
US20140149357A1 (en) * 2012-11-26 2014-05-29 Amazon Technologies, Inc. Block restore ordering in a streaming restore system
CN106649073A (zh) * 2015-10-28 2017-05-10 中国移动通信集团公司 一种基于动态脚本模板的测试方法及装置
CN106802901A (zh) * 2015-11-26 2017-06-06 北京国双科技有限公司 数据库查询的方法及装置
CN106933929A (zh) * 2015-12-31 2017-07-07 北京国双科技有限公司 调整数据表连接的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
姚曦: "SQL数据库查询效率的研究", 《电脑与电信》 *

Similar Documents

Publication Publication Date Title
CN105183735B (zh) 数据的查询方法及查询装置
CN107239479A (zh) 一种基于区块链的数据存储以及查询的方法及装置
CN107644286A (zh) 工作流处理方法及装置
CN109710663A (zh) 一种数据统计图表生成方法
CN110413634A (zh) 数据查询方法、系统、装置及计算机可读存储介质
CN108334515A (zh) 一种处理崩溃文件中堆栈地址的方法、装置及系统
CN109101575A (zh) 计算方法及装置
CN110188100A (zh) 数据处理方法、装置及计算机存储介质
CN108959510A (zh) 一种分布式数据库的分区级连接方法和装置
CN108268289A (zh) web应用的参数配置方法、装置及系统
CN109649916A (zh) 一种智能货柜货物识别方法和装置
CN110019111A (zh) 数据处理方法、装置、存储介质以及处理器
Nassehi et al. Toward interoperable CNC manufacturing
CN106294468A (zh) 处理业务数据的方法和装置
CN106933842A (zh) 一种数据库查询方法和装置
JP2015521321A (ja) ユーザー推奨方法および装置
CN110020004A (zh) 一种数据计算方法及引擎
CN110019385A (zh) 计算指标的查询方法及装置
CN109558432A (zh) 数据处理方法及装置
CN106294700A (zh) 一种日志的存储与读取方法及装置
CN109614098A (zh) 配置界面的生成方法和装置
CN110069488A (zh) 一种数据存储方法、数据读取方法及其装置
CN110019294A (zh) 一种数据库查询脚本的生成方法、数据库查询方法及装置
CN110019357A (zh) 数据库查询脚本生成方法及装置
CN109561126A (zh) 一种数据同步方法和装置、存储介质、处理器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20190716

RJ01 Rejection of invention patent application after publication