数据库查询语句生成方法、装置、计算机设备和存储介质与流程

文档序号:22627455发布日期:2020-10-23 19:36阅读:129来源:国知局
数据库查询语句生成方法、装置、计算机设备和存储介质与流程

本申请涉及数据库应用技术领域,特别是涉及一种数据库查询语句生成方法、装置、计算机设备和存储介质。



背景技术:

当前的企业信息化数据已经逐步形成,但是由于信息化的时间、执行力度不一致导致数据分散在网络中,数据形式不一致,而且这些分散的数据之间往往又互相有一定关联,这些数据如果孤立起来就只是一个简单的存储,现在的情况是这些作为存储的信息已经基本完备,而应用往往是需要把各个相对独立却又有关联的数据进行方便、高效、可靠的统一访问。

要解决上述问题,现有的方式是通过用户调用数据库语句或视图时,通过使用数据库视图设计器或编写sql查询语句,然后再调用。但是这样的方式往往存在编写复杂查询语句时,比较费时效率低,并且受限于视图设计器不能涉及复杂的查询语句。因此,为了提高数据库系统的性能,对查询进行优化是必不可少的。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种数据库查询语句生成方法、装置、计算机设备和存储介质,能够提高数据库查询语句的生成效率。

一种数据库查询语句生成方法,包括以下步骤:

获取查询需求信息;

根据所述查询需求信息从数据库中筛选相关数据图表,同时解析得到需求字段;

将若干所述数据图表关联完成可视化建模生成视图模型;

为所述视图模型配置需求字段后生成数据库查询语句。

作为一种可实施方式,所述根据所述查询需求信息从数据库中筛选相关数据图表,包括以下步骤:

解析所述查询需求信息,获取主查询信息和子查询信息;

根据所述主查询信息和子查询信息从数据库中筛选相关数据图表。

作为一种可实施方式,所述将若干所述数据图表关联完成可视化建模生成视图模型,包括以下步骤:

根据所述主查询信息筛选的数据图表建立主查询;

根据所述子查询信息筛选的数据图表建立子查询;

将所述主查询和所述子查询进行关联生成视图模型。

作为一种可实施方式,所述根据所述子查询信息筛选的数据图表建立子查询,包括以下步骤:

若所述子查询为多个,将多个所述子查询进行关联。

作为一种可实施方式,还包括以下步骤:

判断子查询是否需要建立下级子查询;

若需要,则建立下级子查询,同时将下级子查询与子查询、主查询进行关联。

作为一种可实施方式,所述关联包括查询方式,所述查询方式包括连接方式、分组查询方式及合并查询方式,所述连接方式包括左联、右联及全联中的一种或多种。

作为一种可实施方式,所述为视图模型配置需求字段后生成数据库查询语句,其中,需求字段包括固定字段和/或自定义字段,所述自定义字段在设计器样本库中没有相关需求字段情况下进行手动编辑。

一种数据库查询语句生成装置,包括需求获取模块、数据表筛选模块、视图建模模块及查询语句生成模块;

所述需求获取模块,用于获取查询需求信息;

所述数据表筛选模块,用于根据所述查询需求信息从数据库中筛选相关数据图表,同时解析得到需求字段;

所述视图建模模块,用于将若干所述数据表关联完成可视化建模生成视图模型;

所述查询语句生成模块,用于为所述视图模型配置需求字段后生成数据库查询语句。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如下步骤:

获取查询需求信息;

根据所述查询需求信息从数据库中筛选相关数据图表,同时解析得到需求字段;

将若干所述数据图表关联完成可视化建模生成视图模型;

为所述视图模型配置需求字段后生成数据库查询语句。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行如下步骤:

获取查询需求信息;

根据所述查询需求信息从数据库中筛选相关数据图表,同时解析得到需求字段;

将若干所述数据图表关联完成可视化建模生成视图模型;

为所述视图模型配置需求字段后生成数据库查询语句。

上述数据库查询语句生成方法、装置、计算机设备和存储介质,可以从所需要的查询结果出发,列出需要查询的字段,然后针对每一个查询字段建立可视化的数据源编辑操作进行可视化搭建,用户可快速准确地生成结构复杂的查询(sql)语句,直观地了解视图模型中各级数据源和同级数据源之间的关联关系,从而生成数据库查询语句,并验证查询结果。

附图说明

图1为一个实施例中数据库查询语句生成方法的应用环境图;

图2为一个实施例中数据库查询语句生成方法的流程示意图;

图3为一个实施例中数据库表关联关系的示意图;

图4为一个实施例中物品档案;

图5为一个实施例中入库单表头;

图6为一个实施例中入库单明细表;

图7为一个实施例中出库单表头;

图8为一个实施例中出库单明细表;

图9为一个实施例中视图设计器视图;

图10为一个实施例中数据库表单;

图11为一个实施例中建立主查询的视图;

图12为一个实施例中建立入库子查询和出库子查询的视图;

图13为一个实施例中为入库子查询和出库子查询增加数据源的视图;

图14为一个实施例中为入库子查询和出库子查询按照数据库表关联关系给基础数据表建立关联关系的视图;

图15为一个实施例中为入库子查询配置字段的视图;

图16为一个实施例中为出库子查询配置字段的视图;

图17为一个实施例中为主查询和子查询建立关联的视图;

图18为一个实施例中为字段选择视图;

图19为一个实施例中为自定义字段配置视图;

图20为一个实施例中为关联好的主查询和子查询配置字段的视图;

图21为一个实施例中为生成的数据库查询语句的视图;

图22为一个实施例中为数据预览效果的视图;

图23为一个实施例中数据库查询语句生成装置的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的数据库查询语句生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。用户可以通过终端102采集或者输入包含人脸对象的深度图像和红外图像,然后通过网络传输至服务器104中进行人脸活体检测。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器104可以根据终端102采集或输入的包含人脸对象的深度图像和红外图像进行活体检测,输出活体检测结果。服务器104用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种数据库查询语句生成方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:

s100:获取查询需求信息;本实施例中为用户提交的查询需求表样。

s200:根据所述查询需求信息从数据库中筛选相关数据图表,同时解析得到需求字段;分析提交的查询需求表样,确定查询所需的相关数据图表和需求字段,数据图表包括数据库表和视图,与此同时,确认数据库表或视图的查询方式,确认后开始通过视图设计器开始配置。

s300:将若干所述数据图表关联完成可视化建模生成视图模型;在视图设计器中为筛选的数据库表或视图配置查询方式和关联关系字段。

s400:为所述视图模型配置需求字段后生成数据库查询语句。

具体的,在步骤s200中,解析查询需求信息,获取主查询信息和子查询信息,并根据主查询信息和子查询信息从数据库中筛选相关数据图表。

具体的,在步骤s300中,根据主查询信息筛选的数据图表建立主查询和子查询信息筛选的数据图表建立子查询;

将主查询和子查询进行关联生成视图模型。

在一实施例中,步骤s300还包括如下步骤:

判断是否需要建立下级子查询;

若需要,则建立下级子查询,同时将下级子查询与子查询、主查询进行关联生成视图模型。

其中,建立主查询过程如下:将主查询所需的数据库表或视图作为主表建立主查询。若建立主查询需要其它的数据库表或视图,则将其作为副表,同时将副表与主表进行关联。在本实施例中,关联关系为通过主键和外键的左联连接方式。但是可根据需求选择其它关联关系,在本申请中,不局限于采用通过主键和外键的左联连接方式,也可采用右联连接方式或全联连接方式。

建立子查询过程如上述的建立主查询过程,首先将主查询所需的数据库表或视图作为主表建立子查询。若建立子查询需要其它的数据库表或视图,则将其作为副表,同时将副表与主表进行关联。在本实施例中,子查询的主表和副表也是通过主键和外键的左联连接方式进行关联。

关联既包括数据库表或视图的连接关系,也包括数据库表或视图的数据处理关系,因此,在本实施例中,关联包括查询方式,查询方式包括连接方式、分组查询方式及合并查询方式。其中,连接方式是对数据库表或视图进行关联连接(左联、右联及全联中的一种或多种组合),分组查询方式是根据分组(一个或多个子查询为一个分组,在本实施了中指一个子查询)对数据进行汇总,合并查询方式是用于产生更加细致的数据明细表,库存明细等。

在另一实施例中,若子查询的多个,则将多个子查询进行关联。若子查询为同级子查询,则同时将同级子查询与主查询进行关联。若子查询为下级子查询,则将一个或多个下级子查询与其相关的子查询进行关联。不管是否为同级子查询或下级子查询,在其进行关联后,均需与主查询进行关联用于视图模型的建立。但是,主查询只与一级子查询建立关系,一级子查询与下级子查询建立关系,不跨级建立关系。

在另一实施例中,在建立视图模型后,还包括如下步骤:

为视图模型配置需求字段,需求字段包括固定字段和/或自定义字段。其中,自定义字段是在设计器样本库中没有相关需求字段情况下进行手动编辑和添加的。

上述的建立关联包括子查询自身的关联、主查询与子查询的关联。因此,子查询建立关联后,为其配置相关字段;主查询和子查询建立关联后,为其配置相关字段。

综上所述,数据库查询语句生成方法是通过解析查询需求信息获取相关数据图表和需求字段,在获取解析信息后,先建立主查询和子查询的同时选择其连接方式生成视图模型,再通过配置需求生成数据库查询语句。

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合表一、附图3-和具体实施例对本申请作进一步详细的说明。

如下表一所示,用户提出需求需要实现库存收发存查询的查询需求表样;

表一

分析提交的查询需求表样,确定查询所需的数据库表或视图,同时获得包括期初数量和本期入库的需求字段,根据找到的数据库表或视图设计数据库表关联关系如图3所示;

在数据库中找到五张相关的数据库表,利用五张数据库表进入设计器建立视图模型,五张数据库表分别如图4-8所示;

如图9所示,创建物品收发存查询视图模型并进入设计器;

如图10-11所示,为视图模型按照数据库表关联关系选择基础表物品档案ck001建立主查询;

为入库子查询和出库子查询按照数据库表关联关系选择基础数据表,其中,入库子查询的数据库表为:入库主表为ck004,明细表为ck005;出库子查询的数据库表为出库主表为ck006,出库明细表为ck007;

如图12-14所示,为入库子查询和出库子查询按照数据库表关联关系给基础数据表建立关联关系。关联方式均为左联方式,入库关系为ck004.guid=ck005.ck004_guid。出库关系为ck006.guid=ck007.ck006_guid;

如图15-16所示,为入库子查询和出库子查询配置字段,入库子查询建立好左联关系后,入库单表头和入库单明细的字段都进入选择范围,选取需要分组的字段ck005.ck001_guid和新建自定义的计算字段期初数量和本期入库;出库子查询建立好左联关系后,出库单表头和出库单明细的字段都进入选择范围,选取需要分组的字段ck007.ck001_guid和新建自定义的计算字段期初数量和本期出库;

如图17所示,为主查询与入库子查询、出库子查询建立关联关系。连接方式为左联方式,ck001.guid=入库.ck001_guidandck001.guid=出库.ck001_guid;

如图18-20所示,关联好的主查询和子查询后,会把主查询、入库子查询、出库子查询中的所有字段都进入选择范围,选取所需的ck001中的id、物品名称、单位、库位,新建自定义字段并选择入库子查询、出库子查询中的期初数量计算得出期初数量,选择入库子查询中的入库数量,出库子查询中的出库数量作为本期发生数,新建自定义字段用入库期初数量、出库期初数量、本期入库、本期出库,计算得出期末数量;

如图21所示,生成供用户调用的数据库查询语句;

如图22所示,根据生成的数据库查询语句,预览查询效果,可根据预览判断数据库查询语句是否符合预期(即表一的相关内容)。

应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图23所示,提供了一种数据库查询语句生成装置,包括需求获取模块100、数据表筛选模块200、视图建模模块300及查询语句生成模块400。

其中,需求获取模块100用于获取查询需求信息;数据表筛选模块200用于根据查询需求信息从数据库中筛选相关数据图表,同时解析得到需求字段;视图建模模块300用于将若干数据表关联完成可视化建模生成视图模型;查询语句生成模块400用于为视图模型配置需求字段后生成数据库查询语句。

关于数据库查询语句生成装置的具体限定可以参见上文中对于数据库查询语句生成方法的限定,在此不再赘述。上述数据库查询语句生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,其特征在于,处理器执行计算机程序时实现如下步骤。

s100:获取查询需求信息;本实施例中为用户提交的查询需求表样。

s200:根据所述查询需求信息从数据库中筛选相关数据图表,同时解析得到需求字段;分析提交的查询需求表样,确定查询所需的相关数据图表和需求字段,数据图表包括数据库表和视图,与此同时,确认数据库表或视图的查询方式,确认后开始通过视图设计器开始配置。

s300:将若干所述数据图表关联完成可视化建模生成视图模型;在视图设计器中为筛选的数据库表或视图配置查询方式和关联关系字段。

s400:为所述视图模型配置需求字段后生成数据库查询语句。

具体的,在步骤s200中,解析查询需求信息,获取主查询信息和子查询信息,并根据主查询信息和子查询信息从数据库中筛选相关数据图表。

具体的,在步骤s300中,根据主查询信息筛选的数据图表建立主查询和子查询信息筛选的数据图表建立子查询;

将主查询和子查询进行关联生成视图模型。

在一实施例中,步骤s300还包括如下步骤:

判断是否需要建立下级子查询;

若需要,则建立下级子查询,同时将下级子查询与子查询、主查询进行关联生成视图模型。

其中,建立主查询过程如下:将主查询所需的数据库表或视图作为主表建立主查询。若建立主查询需要其它的数据库表或视图,则将其作为副表,同时将副表与主表进行关联。在本实施例中,关联关系为通过主键和外键的左联连接方式。但是可根据需求选择其它关联关系,在本申请中,不局限于采用通过主键和外键的左联连接方式,也可采用右联连接方式或全联连接方式。

建立子查询过程如上述的建立主查询过程,首先将主查询所需的数据库表或视图作为主表建立子查询。若建立子查询需要其它的数据库表或视图,则将其作为副表,同时将副表与主表进行关联。在本实施例中,子查询的主表和副表也是通过主键和外键的左联连接方式进行关联。

关联既包括数据库表或视图的连接关系,也包括数据库表或视图的数据处理关系,因此,在本实施例中,关联包括查询方式,查询方式包括连接方式、分组查询方式及合并查询方式。其中,连接方式是对数据库表或视图进行关联连接(左联、右联及全联中的一种或多种组合),分组查询方式是根据分组(一个或多个子查询为一个分组,在本实施了中指一个子查询)对数据进行汇总,合并查询方式是用于产生更加细致的数据明细表,库存明细等。

在另一实施例中,若子查询的多个,则将多个子查询进行关联。若子查询为同级子查询,则同时将同级子查询与主查询进行关联。若子查询为下级子查询,则将一个或多个下级子查询与其相关的子查询进行关联。不管是否为同级子查询或下级子查询,在其进行关联后,均需与主查询进行关联用于视图模型的建立。但是,主查询只与一级子查询建立关系,一级子查询与下级子查询建立关系,不跨级建立关系。

在另一实施例中,在建立视图模型后,还包括如下步骤:

为视图模型配置需求字段,需求字段包括固定字段和/或自定义字段。其中,自定义字段是在设计器样本库中没有相关需求字段情况下进行手动编辑和添加的。

上述的建立关联包括子查询自身的关联、主查询与子查询的关联。因此,子查询建立关联后,为其配置相关字段;主查询和子查询建立关联后,为其配置相关字段。

本领域技术人员可以理解,图22中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

s100:获取查询需求信息;本实施例中为用户提交的查询需求表样。

s200:根据所述查询需求信息从数据库中筛选相关数据图表,同时解析得到需求字段;分析提交的查询需求表样,确定查询所需的相关数据图表和需求字段,数据图表包括数据库表和视图,与此同时,确认数据库表或视图的查询方式,确认后开始通过视图设计器开始配置。

s300:将若干所述数据图表关联完成可视化建模生成视图模型;在视图设计器中为筛选的数据库表或视图配置查询方式和关联关系字段。

s400:为所述视图模型配置需求字段后生成数据库查询语句。

具体的,在步骤s200中,解析查询需求信息,获取主查询信息和子查询信息,并根据主查询信息和子查询信息从数据库中筛选相关数据图表。

具体的,在步骤s300中,根据主查询信息筛选的数据图表建立主查询和子查询信息筛选的数据图表建立子查询;

将主查询和子查询进行关联生成视图模型。

在一实施例中,步骤s300还包括如下步骤:

判断是否需要建立下级子查询;

若需要,则建立下级子查询,同时将下级子查询与子查询、主查询进行关联生成视图模型。

其中,建立主查询过程如下:将主查询所需的数据库表或视图作为主表建立主查询。若建立主查询需要其它的数据库表或视图,则将其作为副表,同时将副表与主表进行关联。在本实施例中,关联关系为通过主键和外键的左联连接方式。但是可根据需求选择其它关联关系,在本申请中,不局限于采用通过主键和外键的左联连接方式,也可采用右联连接方式或全联连接方式。

建立子查询过程如上述的建立主查询过程,首先将主查询所需的数据库表或视图作为主表建立子查询。若建立子查询需要其它的数据库表或视图,则将其作为副表,同时将副表与主表进行关联。在本实施例中,子查询的主表和副表也是通过主键和外键的左联连接方式进行关联。

关联既包括数据库表或视图的连接关系,也包括数据库表或视图的数据处理关系,因此,在本实施例中,关联包括查询方式,查询方式包括连接方式、分组查询方式及合并查询方式。其中,连接方式是对数据库表或视图进行关联连接(左联、右联及全联中的一种或多种组合),分组查询方式是根据分组(一个或多个子查询为一个分组,在本实施了中指一个子查询)对数据进行汇总,合并查询方式是用于产生更加细致的数据明细表,库存明细等。

在另一实施例中,若子查询的多个,则将多个子查询进行关联。若子查询为同级子查询,则同时将同级子查询与主查询进行关联。若子查询为下级子查询,则将一个或多个下级子查询与其相关的子查询进行关联。不管是否为同级子查询或下级子查询,在其进行关联后,均需与主查询进行关联用于视图模型的建立。但是,主查询只与一级子查询建立关系,一级子查询与下级子查询建立关系,不跨级建立关系。

在另一实施例中,在建立视图模型后,还包括如下步骤:

为视图模型配置需求字段,需求字段包括固定字段和/或自定义字段。其中,自定义字段是在设计器样本库中没有相关需求字段情况下进行手动编辑和添加的。

上述的建立关联包括子查询自身的关联、主查询与子查询的关联。因此,子查询建立关联后,为其配置相关字段;主查询和子查询建立关联后,为其配置相关字段。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1