数据库查询建模系统和数据库查询建模方法

文档序号:6399709阅读:207来源:国知局
专利名称:数据库查询建模系统和数据库查询建模方法
技术领域
本发明涉及数据库查询技术领域,具体而言,涉及一种数据库查询建模系统和一种数据库查询建模方法。
背景技术
数据库已成为一个成熟软件系统中不可或缺的必要组成部分,而对数据库的查询操作,更是数据库系统中,最简单,最常用的操作。但是随着企业业务复杂度的不断提高,对数据库的查询操作也变得越来越复杂,这就需要编写更加复杂的数据库查询语句,即SQL语句,来访问数据库。比如,一个SQL语句中会嵌套多个子查询,或者多个表之间有多种连接关系,对查询字段有特殊限制等。在编写这样复杂的SQL语句时,即使非常有经验的数据库管理人员,也难免会发生错误,对于不太熟悉SQL语句的初级数据库使用者来说,那更是一头雾水了。因此,如何方便的生成复杂SQL语句,是访问数据库需要解决的重要问题。

发明内容
本发明正是基于上述问题,提出了一种新的技术方案,可以将SQL语句的生成过程,以图形化的方式来构造,自动生成,代替手写。不仅能避免手写SQL语句发生的错误,同时也能提高SQL语句准确性,也使得非数据库管理人员也能方便上手,执行数据库的查询操作。有鉴于此,本发明提出了一种数据库查询建模系统,包括:界面生成单元,用于生成可视化图形界面,所述可视化图形界面上设置有可操作的功能菜单选项;信息获取单元,用于根据用户的第一选择操作,在所述功能菜单选项中进行选择,以确定需要查询的表,并获取该表的表名和字段名,以及根据用户的第二选择操作,在被选中的表中选择需要查询的字段信息;语句拼接单元,用于将所述表名和所述字段名作为SQL语句的FROM部分,将所述字段信息作为SQL语句的SELECT部分,拼接成对应的SQL语句。在该技术方案中,通过生成可视化图形界面,从而用户仅需要对查询对象等信息,便可以自动生成标准的SQL语句,降低了用户编写SQL语句的难度,提高了编写效率。在上述技术方案中,优选地,所述信息获取单元通过选择数据库中的物理表、选择对表进行描述的元数据或选择已创建的查询模型来确定需要查询的表。在上述技术方案中,优选地,还包括:关系定义单元,用于在被选中的表的个数为多个的情况下,定义多个被选中的表的连接关系;其中,所述语句拼接单元按照所述连接关系,将所述表名和所述字段名拼接至所述SQL语句的FROM部分。在该技术方案中,根据多个被选中的表的连接关系,可以确定多个表的字段等之间的引用等关联关系,从而用于SQL语句的生成。在上述技术方案中,优选地,还包括:条件定义单元,用于根据用户的条件定义操作,定义相应的限制条件;其中,所述语句拼接单元还将所述限制条件拼接至所述SQL语句的WHERE及之后的部分。在该技术方案中,还可以将限制条件添加至生成的SQL语句中。在上述技术方案中,优选地,所述限制条件包括以下至少之一或其组合:排序方式、SQL函数、用于在查询操作时由用户输入的自定义参数、用于在查询操作时利用其中的值的宏变量。根据本发明的又一方面,还提出了一种数据库查询建模方法,包括:步骤201,生成可视化图形界面,所述可视化图形界面上设置有可操作的功能菜单选项;步骤202,根据用户的第一选择操作,在所述功能菜单选项中进行选择,以确定需要查询的表,并获取该表的表名和字段名;步骤204,根据用户的第二选择操作,在被选中的表中选择需要查询的字段信息;步骤206,将所述表名和所述字段名作为SQL语句的FROM部分,将所述字段信息作为SQL语句的SELECT部分,拼接成对应的SQL语句。在该技术方案中,通过生成可视化图形界面,从而用户仅需要对查询对象等信息,便可以自动生成标准的SQL语句,降低了用户编写SQL语句的难度,提高了编写效率。在上述技术方案中,优选地,所述确定需要查询的表的步骤包括:选择数据库中的物理表、选择对表进行描述的元数据或选择已创建的查询模型。在上述技术方案中,优选地,所述步骤204还包括:当被选中的表的个数为多个时,还定义多个被选中的表的连接关系;以及所述步骤206包括:按照所述连接关系,将所述表名和所述字段名拼接至所述SQL语句的FROM部分。在该技术方案中,根据多个被选中的表的连接关系,可以确定多个表的字段等之间的引用等关联关系,从而用于SQL语句的生成。在上述技术方案中,优选地,所述步骤204还包括:根据用户的条件定义操作,定义相应的限制条件;以及所述步骤206还包括:将所述限制条件拼接至所述SQL语句的WHERE及之后的部分。在该技术方案中,还可以将限制条件添加至生成的SQL语句中。在上述技术方案中,优选地,所述限制条件包括以下至少之一或其组合:排序方式、SQL函数、用于在查询操作时由用户输入的自定义参数、用于在查询操作时利用其中的值的宏变量。通过以上技术方案,可以将SQL语句的生成过程,以图形化的方式来构造,自动生成,代替手写。不仅能避免手写SQL语句发生的错误,同时也能提高SQL语句准确性,也使得非数据库管理人员也能方便上手,执行数据库的查询操作。


图1示出了根据本发明的实施例的数据库查询建模系统的框图;图2示出了根据本发明的实施例的数据库查询建模方法的流程图;图3示出了根据本发明的实施例的生成标准SQL语句的流程图;图4示出了根据本发明的实施例的生成标准SQL语句的功能模块的结构示意图。
具体实施例方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式
对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。图1示出了根据本发明的实施例的数据库查询建模系统的框图。如图1所示,根据本发明的实施例的数据库查询建模系统100,包括:界面生成单元102,用于生成可视化图形界面,所述可视化图形界面上设置有可操作的功能菜单选项;信息获取单元104,用于根据用户的第一选择操作,在所述功能菜单选项中进行选择,以确定需要查询的表,并获取该表的表名和字段名,以及根据用户的第二选择操作,在被选中的表中选择需要查询的字段信息;语句拼接单元106,用于将所述表名和所述字段名作为SQL语句的FROM部分,将所述字段信息作为SQL语句的SELECT部分,拼接成对应的SQL语句。在该技术方案中,通过生成可视化图形界面,从而用户仅需要对查询对象等信息,便可以自动生成标准的SQL语句,降低了用户编写SQL语句的难度,提高了编写效率。在上述技术方案中,优选地,所述信息获取单元104通过选择数据库中的物理表、选择对表进行描述的元数据或选择已创建的查询模型来确定需要查询的表。在上述技术方案中,优选地,还包括:关系定义单元108,用于在被选中的表的个数为多个的情况下,定义多个被选中的表的连接关系;其中,所述语句拼接单元106按照所述连接关系,将所述表名和所述字段名拼接至所述SQL语句的FROM部分。在该技术方案中,根据多个被选中的表的连接关系,可以确定多个表的字段等之间的引用等关联关系,从而用于SQL语句的生成。在上述技术方案中,优选地,还包括:条件定义单元110,用于根据用户的条件定义操作,定义相应的限制条件;其中,所述语句拼接单元106还将所述限制条件拼接至所述SQL语句的WHERE及之后的部分。在该技术方案中,还可以将限制条件添加至生成的SQL语句中。在上述技术方案中,优选地,所述限制条件包括以下至少之一或其组合:排序方式、SQL函数、用于在查询操作时由用户输入的自定义参数、用于在查询操作时利用其中的值的宏变量。图2示出了根据本发明的实施例的数据库查询建模方法的流程图。如图2所示,根据本发明的实施例的数据库查询建模方法,包括:步骤201,生成可视化图形界面,所述可视化图形界面上设置有可操作的功能菜单选项;步骤202,根据用户的第一选择操作,在所述功能菜单选项中进行选择,以确定需要查询的表,并获取该表的表名和字段名;步骤204,根据用户的第二选择操作,在被选中的表中选择需要查询的字段信息;步骤206,将所述表名和所述字段名作为SQL语句的FROM部分,将所述字段信息作为SQL语句的SELECT部分,拼接成对应的SQL语句。在该技术方案中,通过生成可视化图形界面,从而用户仅需要对查询对象等信息,便可以自动生成标准的SQL语句,降低了用户编写SQL语句的难度,提高了编写效率。在上述技术方案中,优选地,所述确定需要查询的表的步骤包括:选择数据库中的物理表、选择对表进行描述的元数据或选择已创建的查询模型。在上述技术方案中,优选地,所述步骤204还包括:当被选中的表的个数为多个时,还定义多个被选中的表的连接关系;以及所述步骤206包括:按照所述连接关系,将所述表名和所述字段名拼接至所述SQL语句的FROM部分。在该技术方案中,根据多个被选中的表的连接关系,可以确定多个表的字段等之间的引用等关联关系,从而用于SQL语句的生成。在上述技术方案中,优选地,所述步骤204还包括:根据用户的条件定义操作,定义相应的限制条件;以及所述步骤206还包括:将所述限制条件拼接至所述SQL语句的WHERE及之后的部分。在该技术方案中,还可以将限制条件添加至生成的SQL语句中。在上述技术方案中,优选地,所述限制条件包括以下至少之一或其组合:排序方式、SQL函数、用于在查询操作时由用户输入的自定义参数、用于在查询操作时利用其中的值的宏变量。图3示出了根据本发明的实施例的生成标准SQL语句的流程图。如图3所示,根据本发明的实施例的生成标准SQL语句的流程包括:第一步,选择要查询的表,相当于标准SQL语句中的FROM部分。表,可以是一张,也可以是多张。我们这里的定义的表,不限于数据库的一张物理表,还可以是对表进行描述的元数据,包括表名和字段名。还可以是已经创建好的一个查询模型,这样就能方便的构建嵌套子查询了。第二步,定义表的连接条件。基于第一步,选择的表信息,如果是多张表,需要定义各个表相互之间的连接关系,比如内连接,左连接,右连接,全连接等。我们会把这一步选择的表的连接关系,结合第一步选择的表的信息,拼接到标准SQL语句的FROM部分,按照标准SQL的语法规则,多个表用逗号隔开,为每一张表取一个别名,用空格隔开,当然别名是可选的。表名和字段名之间用逗号隔开,采用“表名.字段名”的格式。第三步,选择要查询的字段,相当于标准SQL语句中的SELECT部分。基于第一步已经选择的表信息,这一步,选择表里面的字段信息。也就是我们需要查询的字段信息,采用“表.字段”的格式来定义。类似的,多个字段之间以逗号隔开,可以为每个字段取别名,用空格隔开,可选。将该步操作结果拼接到标准SQL语句的SELECT部分。第四步,定义限制条件,相当于标准SQL语句的WHERE及之后的部分。例如可以定义排序方式,SQL函数等。这一步,还可以根据用户的需要,定义一些参数,在执行查询时,由用户输入;还可以定义一些宏变量,在执行查询时,取宏变量的值。第五步,生成符合SQL语法规则的标准SQL语句。 需要指出的是:以上的步骤中,第一步必须要选择表。接下来,定义表的连接条件,选择要查询的字段,定义限制条件这几步没有一定的顺序关系,谁先谁后都可以,最后,基于前面几步的操作,生成标准的SQL语句。如果只有一张表,定义表的连接条件一步,可以省略,如果没有限制条件,定义限制条件一步也可以省略,但是选择查询字段一步,必须得有,不可省略。对应于上述步骤,如图4所示,是根据本发明的实施例的生成标准SQL语句的功能模块的结构示意图,包括:表选择器:用于生成SQL语句中,对应的表信息部分,拼接在from后面。实现原理为:从图形用户界面,获得表名和别名信息,中间用空格分开,多个表之间用逗号隔开,其中,别名可有可无。然后,将这些信息拼成字符串,形如:from表名I别名I,表名2别名2。表连接器:用于定义多个表之间的连接关系,如果只有一张表,则此步可以省略。实现原理:基于第一步选择的表,这一步可以通过图形界面选中表的连接关系,以及用于连接的字段。比如:表I左连接表2,on字段表1.字段I和表2.字段2。则拼出的SQL为表I left join表2 on表1.字段1=表2.字段2。字段选择器:用于选择要查询的字段,拼接在select后面,这一步基于第一步选择的表。实现原理为:从图形用户界面获得选中的表中的字段名和别名,中间用空格分开,多个字段之间用逗号隔开,别名可省略。然后将字段信息拼成字符串,形如select表1.字段名I别名1,表2.字段名2别名2。限制条件定义器:用于定义限制条件,拼接在where后面。实现原理为:从图形用户界面获取定义条件的左操作数,操作符和右操作数。例如:表1.字段1=表2.字段2。SQL拼接:将前几步的字符串,按照select, from, where的顺序拼接起来,形成一条完整的SQL语句。结合以上几步,可以生成一条标准SQL语句,如下:Select 表 1.字段 I 别名 1,表 2.字段 2 别名 2 from 表 I left join 表 2 on表1.字段1=表2.字段2where表1.字段1=表2.字段2。SQL校验器:验证拼接后的SQL语句是否符合SQL语法规范,比如表名,字段名是否合法等。SQL语句生成器:输出拼接后的SQL字符串。以上结合附图详细说明了本发明的技术方案,实现了以下有益效果:1、通过图形化的方式,准确、简单方便的生成复杂SQL语句。2、SQL语句,支持参数和宏变量的设置,支持用户在运行态,对SQL语句进行控制。3、支持SQL语句的校验,保证SQL语句执行结果的准确性。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据库查询建模系统,其特征在于,包括: 界面生成单元,用于生成可视化图形界面,所述可视化图形界面上设置有可操作的功能菜单选项; 信息获取单元,用于根据用户的第一选择操作,在所述功能菜单选项中进行选择,以确定需要查询的表,并获取该表的表名和字段名,以及根据用户的第二选择操作,在被选中的表中选择需要查询的字段信息; 语句拼接单元,用于将所述表名和所述字段名作为SQL语句的FROM部分,将所述字段信息作为SQL语句的SELECT部分,拼接成对应的SQL语句。
2.根据权利要求1所述的数据库查询建模系统,其特征在于,所述信息获取单元通过选择数据库中的物理表、选择对表进行描述的元数据或选择已创建的查询模型来确定需要查询的表。
3.根据权利要求1或2所述的数据库查询建模系统,其特征在于,还包括: 关系定义单元,用于在被选中的表的个数为多个的情况下,定义多个被选中的表的连接关系; 其中,所述语句拼接单元按照所述连接关系,将所述表名和所述字段名拼接至所述SQL语句的FROM部分。
4.根据权利要求1或2所述的数据库查询建模系统,其特征在于,还包括: 条件定义单元,用于根据用户 的条件定义操作,定义相应的限制条件; 其中,所述语句拼接单元还将所述限制条件拼接至所述SQL语句的WHERE及之后的部分。
5.根据权利要求4所述的数据库查询建模系统,其特征在于,所述限制条件包括以下至少之一或其组合: 排序方式、SQL函数、用于在查询操作时由用户输入的自定义参数、用于在查询操作时利用其中的值的宏变量。
6.一种数据库查询建模方法,其特征在于,包括: 步骤201,生成可视化图形界面,所述可视化图形界面上设置有可操作的功能菜单选项; 步骤202,根据用户的第一选择操作,在所述功能菜单选项中进行选择,以确定需要查询的表,并获取该表的表名和字段名; 步骤204,根据用户的第二选择操作,在被选中的表中选择需要查询的字段信息; 步骤206,将所述表名和所述字段名作为SQL语句的FROM部分,将所述字段信息作为SQL语句的SELECT部分,拼接成对应的SQL语句。
7.根据权利要求6所述的数据库查询建模方法,其特征在于,所述确定需要查询的表的步骤包括: 选择数据库中的物理表、选择对表进行描述的元数据或选择已创建的查询模型。
8.根据权利要求6或7所述的数据库查询建模方法,其特征在于,所述步骤204还包括:当被选中的表的个数为多个时,还定义多个被选中的表的连接关系;以及 所述步骤206包括:按照所述连接关系,将所述表名和所述字段名拼接至所述SQL语句的FROM部分。
9.根据权利要求6或7所述的数据库查询建模方法,其特征在于,所述步骤204还包括:根据用户的条件定义操作,定义相应的限制条件;以及 所述步骤206还包括:将所述限制条件拼接至所述SQL语句的WHERE及之后的部分。
10.根据权利要求9所述的数据库查询建模方法,其特征在于,所述限制条件包括以下至少之一或其组合: 排序方式、SQL函数、用于在查询操作时由用户输入的自定义参数、用于在查询操作时利用其中的值的 宏变量。
全文摘要
本发明提供了一种数据库查询建模系统,包括界面生成单元,用于生成可视化图形界面,所述可视化图形界面上设置有可操作的功能菜单选项;信息获取单元,用于根据用户的第一选择操作,在所述功能菜单选项中进行选择,以确定需要查询的表,并获取该表的表名和字段名,以及根据用户的第二选择操作,在被选中的表中选择需要查询的字段信息;语句拼接单元,用于将所述表名和所述字段名作为SQL语句的FROM部分,将所述字段信息作为SQL语句的SELECT部分,拼接成对应的SQL语句。本发明还提出了一种数据库查询建模方法。通过本发明的技术方案,可以通过图形化设置,自动生成标准SQL语句,降低了对SQL语句的编写难度。
文档编号G06F17/30GK103093000SQ201310059109
公开日2013年5月8日 申请日期2013年2月25日 优先权日2013年2月25日
发明者张一桐 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1