sql语句自动生成工具的数据库函数离线读取方法及系统与流程

文档序号:15144288发布日期:2018-08-10 20:15阅读:215来源:国知局

本发明涉及数据库领域,特别涉及一种sql语句自动生成工具的数据库函数离线读取方法及系统。



背景技术:

数据库(database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理已不再仅仅是存储和管理数据,且已转变成用户所需要的各种数据管理的方式。

近几年来,随着大数据的发展,数据库的类型变得越来越多,sql语法和使用方法也不同,对功能和性能的要求也越来越高。sql查询语句自动生成工具是在测试数据库功能和性能时经常需要使用到的一种工具,但是,现有的数据库sql查询语句自动生成工具都需要跟数据库进行交互,这使得如果数据库没有启动驱动或者没有安装数据库驱动的话,sql查询语句自动生成工具就无法使用;且针对不同的数据库类型,现有技术都需要使用不同的sql查询语句自动生成工具进行处理,因此兼容性差,无法实现工具的统一化处理;另外,针对一些非开源数据库的函数更新,现有的sql查询语句自动生成工具都无法同步进行扩展函数的更新,因为这样会造成测试case的遗漏。



技术实现要素:

本发明要解决的技术问题之一,在于提供一种sql语句自动生成工具的数据库函数离线读取方法,通过该方法来实现将表结构信息和函数信息以文本文件的形式外置到数据库外,可实现在脱离数据库的情况下能够使用sql语句自动生成工具进行sql查询语句的生成;同时统一了sql语句自动生成工具的输入和输出,可适用于大部分数据库,兼容性强。

本发明是这样实现技术问题之一的:sql语句自动生成工具的数据库函数离线读取方法,所述方法包括如下步骤:

步骤s1、从数据库中获取要查询的表的表结构信息以及所有支持的内置函数的函数信息,且将获取的表结构信息保存成第一文本文件,将获取的函数信息保存成第二文本文件;

步骤s2、修改第一文本文件和第二文本文件的格式,以使第一文本文件和第二文本文件的格式与sql查询语句自动生成工具的输入格式相符合;

步骤s3、sql查询语句自动生成工具读取第一文本文件和第二文本文件,并按照规定的格式保存第一文本文件和第二文本文件;

步骤s4、sql查询语句自动生成工具对保存的第一文本文件与第二文本文件进行数据类型匹配,并利用随机算法自动生成sql查询语句,且输出sql查询语句,生成可执行文件。

进一步地,在更新数据库内置函数时,所述步骤s2还包括:

根据更新的数据库内置函数的内容,直接对第一文本文件和第二文本文件的内容进行修改或者增加。

进一步地,在所述步骤s1中,所述从数据库中获取要查询的表的表结构信息以及所有支持的内置函数的函数信息具体为:

从数据库中获取要查询的表的列名以及表中各个列的类型信息,从数据库中获取所有支持的内置函数的函数名称、函数返回值类型、函数包含的参数个数以及各个参数的类型信息;所述所有支持的内置函数包括操作符、聚合函数、oltp函数或者olap函数。

进一步地,所述步骤s4具体为:sql查询语句自动生成工具获取保存的第一文本文件与第二文本文件,并将第一文本文件中各个列的类型信息与第二文本文件中的函数返回值类型和内置函数所包含的各个参数的类型信息进行匹配,且将类型相匹配的列和内置函数保存,类型不匹配的列和内置函数则不进行保存;

利用随机算法随机选取保存的列和内置函数并自动生成sql查询语句,且输出sql查询语句,生成可执行文件。

本发明要解决的技术问题之二,在于提供一种sql语句自动生成工具的数据库函数离线读取系统,通过该相同来实现将表结构信息和函数信息以文本文件的形式外置到数据库外,可实现在脱离数据库的情况下能够使用sql语句自动生成工具进行sql查询语句的生成;同时统一了sql语句自动生成工具的输入和输出,可适用于大部分数据库,兼容性强。

本发明是这样实现技术问题之二的:sql语句自动生成工具的数据库函数离线读取系统,所述系统包括信息读取模块、文本修改模块、文本读取模块以及语句匹配输出模块;

所述信息读取模块,用于从数据库中获取要查询的表的表结构信息以及所有支持的内置函数的函数信息,且将获取的表结构信息保存成第一文本文件,将获取的函数信息保存成第二文本文件;

所述文本修改模块,用于修改第一文本文件和第二文本文件的格式,以使第一文本文件和第二文本文件的格式与sql查询语句自动生成工具的输入格式相符合;

所述文本读取模块,用于sql查询语句自动生成工具读取第一文本文件和第二文本文件,并按照规定的格式保存第一文本文件和第二文本文件;

所述语句匹配输出模块,用于sql查询语句自动生成工具对保存的第一文本文件与第二文本文件进行数据类型匹配,并利用随机算法自动生成sql查询语句,且输出sql查询语句,生成可执行文件。

进一步地,在更新数据库内置函数时,所述文本修改模块还用于:

根据更新的数据库内置函数的内容,直接对第一文本文件和第二文本文件的内容进行修改或者增加。

进一步地,在所述信息读取模块中,所述从数据库中获取要查询的表的表结构信息以及所有支持的内置函数的函数信息具体为:

从数据库中获取要查询的表的列名以及表中各个列的类型信息,从数据库中获取所有支持的内置函数的函数名称、函数返回值类型、函数包含的参数个数以及各个参数的类型信息;所述所有支持的内置函数包括操作符、聚合函数、oltp函数或者olap函数。

进一步地,所述语句匹配输出模块具体为:sql查询语句自动生成工具获取保存的第一文本文件与第二文本文件,并将第一文本文件中各个列的类型信息与第二文本文件中的函数返回值类型和内置函数所包含的各个参数的类型信息进行匹配,且将类型相匹配的列和内置函数保存,类型不匹配的列和内置函数则不进行保存;

利用随机算法随机选取保存的列和内置函数并自动生成sql查询语句,且输出sql查询语句,生成可执行文件。

本发明具有如下优点:1、采用将数据库表结构和内置函数文件外置到数据库外的方式,可使在数据库没有启动驱动或者没有安装数据库驱动的情况下(即数据库与sql查询语句自动生成工具没有交互的情况下),也可以使用sql查询语句自动生成工具来生成sql查询语句,这可为实际的使用带来较大的方便;

2、在更新数据库的内置函数时,只需要对外置的第一文本文件和第二文本文件直接进行修改或者增加即可,而不需要去修改sql查询语句自动生成工具中的代码,因此,不仅可以节省时间,而且可以增强扩展性;

3、将sql查询语句自动生成工具的输入和输出格式进行统一,这可以使sql查询语句自动生成工具能够适用于大部分数据库的使用需求,提高兼容性。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明sql语句自动生成工具的数据库函数离线读取方法的原理框图。

具体实施方式

请参阅图1所示,本发明sql语句自动生成工具的数据库函数离线读取方法的较佳实施例,所述方法包括如下步骤:

步骤s1、从数据库中获取要查询的表的表结构信息以及所有支持的内置函数的函数信息,且将获取的表结构信息保存成第一文本文件,将获取的函数信息保存成第二文本文件;

执行步骤s1的目的是:将表结构信息和函数信息以文本文件的形式外置到数据库外,以使在数据库没有启动驱动或者没有安装数据库驱动的情况下也可以使用sql查询语句自动生成工具来生成sql查询语句。

步骤s2、修改第一文本文件和第二文本文件的格式,以使第一文本文件和第二文本文件的格式与sql查询语句自动生成工具的输入格式相符合,即需要按照指定的格式来修改第一文本文件和第二文本文件,使sql查询语句自动生成工具的输入和输出得到统一,这可以使sql查询语句自动生成工具能够适用于大部分数据库的使用需求,提高兼容性。

步骤s3、sql查询语句自动生成工具读取第一文本文件和第二文本文件,并按照规定的格式保存第一文本文件和第二文本文件;

步骤s4、sql查询语句自动生成工具对保存的第一文本文件与第二文本文件进行数据类型匹配,并利用随机算法自动生成sql查询语句,且输出sql查询语句,生成可执行文件。

其中,

在更新数据库内置函数时,所述步骤s2还包括:

根据更新的数据库内置函数的内容,直接对第一文本文件和第二文本文件的内容进行修改或者增加。也就是说,在更新数据库的内置函数时,只需要对外置的第一文本文件和第二文本文件直接进行修改或者增加即可,而不需要去修改sql查询语句自动生成工具中的代码,因此,不仅可以节省时间,而且可以增强扩展性。

在所述步骤s1中,所述从数据库中获取要查询的表的表结构信息以及所有支持的内置函数的函数信息具体为:

从数据库中获取要查询的表的列名以及表中各个列的类型信息,从数据库中获取所有支持的内置函数的函数名称、函数返回值类型、函数包含的参数个数以及各个参数的类型信息;所述所有支持的内置函数包括操作符(如加号、减号、等号、逗号等)、聚合函数(如max、min、sum、avg等)、oltp函数或者olap函数。

所述步骤s4具体为:sql查询语句自动生成工具获取保存的第一文本文件与第二文本文件,并将第一文本文件中各个列的类型信息与第二文本文件中的函数返回值类型和内置函数所包含的各个参数的类型信息进行匹配,且将类型相匹配的列和内置函数保存,类型不匹配的列和内置函数则不进行保存;利用随机算法随机选取保存的列和内置函数并自动生成sql查询语句,且输出sql查询语句,生成可执行文件。

在具体实施时,sql查询语句自动生成工具在对第一文本文件中各个列的类型信息与第二文本文件中的函数返回值类型和内置函数所包含的各个参数的类型信息进行匹配时,具体包括:将第一文本文件中各个列的类型信息与第二文本文件中函数返回值类型进行比对匹配,且如果类型匹配,则保存列和函数返回值;如果类型不匹配,则不保存列和函数返回值;将第一文本文件中各个列的类型信息与第二文本文件中内置函数所包含的各个参数的类型信息进行比对匹配,且如果各个列的类型信息与内置函数所包含的各个参数的类型信息均对应匹配,则将各个列的类型信息填入内置函数对应的参数表中保存;否则就不将各个列的类型信息填入内置函数对应的参数表中保存;

在具体生成sql查询语句时,sql查询语句自动生成工具利用随机算法随机选取保存的列和内置函数,并将类型匹配的列和函数返回值生成数值比对(如<,=,>等)的第一sql查询子句;将参数表中填有列类型信息的内置函数生成第二sql查询子句;同时,sql查询语句自动生成工具将第一sql查询子句和第二sql查询子句与其它查询语句封装在一起,自动生成sql查询语句。

本发明sql语句自动生成工具的数据库函数离线读取系统的较佳实施例,所述系统包括信息读取模块、文本修改模块、文本读取模块以及语句匹配输出模块;

所述信息读取模块,用于从数据库中获取要查询的表的表结构信息以及所有支持的内置函数的函数信息,且将获取的表结构信息保存成第一文本文件,将获取的函数信息保存成第二文本文件;

执行信息读取模块的目的是:将表结构信息和函数信息以文本文件的形式外置到数据库外,以使在数据库没有启动驱动或者没有安装数据库驱动的情况下也可以使用sql查询语句自动生成工具来生成sql查询语句。

所述文本修改模块,用于修改第一文本文件和第二文本文件的格式,以使第一文本文件和第二文本文件的格式与sql查询语句自动生成工具的输入格式相符合,即需要按照指定的格式来修改第一文本文件和第二文本文件,使sql查询语句自动生成工具的输入和输出得到统一,这可以使sql查询语句自动生成工具能够适用于大部分数据库的使用需求,提高兼容性。

所述文本读取模块,用于sql查询语句自动生成工具读取第一文本文件和第二文本文件,并按照规定的格式保存第一文本文件和第二文本文件;

所述语句匹配输出模块,用于sql查询语句自动生成工具对保存的第一文本文件与第二文本文件进行数据类型匹配,并利用随机算法自动生成sql查询语句,且输出sql查询语句,生成可执行文件。

其中,

在更新数据库内置函数时,所述文本修改模块还用于:

根据更新的数据库内置函数的内容,直接对第一文本文件和第二文本文件的内容进行修改或者增加。也就是说,在更新数据库的内置函数时,只需要对外置的第一文本文件和第二文本文件直接进行修改或者增加即可,而不需要去修改sql查询语句自动生成工具中的代码,因此,不仅可以节省时间,而且可以增强扩展性。

在所述信息读取模块中,所述从数据库中获取要查询的表的表结构信息以及所有支持的内置函数的函数信息具体为:

从数据库中获取要查询的表的列名以及表中各个列的类型信息,从数据库中获取所有支持的内置函数的函数名称、函数返回值类型、函数包含的参数个数以及各个参数的类型信息;所述所有支持的内置函数包括操作符(如加号、减号、等号、逗号等)、聚合函数(如max、min、sum、avg等)、oltp函数或者olap函数。

所述语句匹配输出模块具体为:sql查询语句自动生成工具获取保存的第一文本文件与第二文本文件,并将第一文本文件中各个列的类型信息与第二文本文件中的函数返回值类型和内置函数所包含的各个参数的类型信息进行匹配,且将类型相匹配的列和内置函数保存,类型不匹配的列和内置函数则不进行保存;利用随机算法随机选取保存的列和内置函数并自动生成sql查询语句,且输出sql查询语句,生成可执行文件。

在具体实施时,sql查询语句自动生成工具在对第一文本文件中各个列的类型信息与第二文本文件中的函数返回值类型和内置函数所包含的各个参数的类型信息进行匹配时,具体包括:将第一文本文件中各个列的类型信息与第二文本文件中函数返回值类型进行比对匹配,且如果类型匹配,则保存列和函数返回值;如果类型不匹配,则不保存列和函数返回值;将第一文本文件中各个列的类型信息与第二文本文件中内置函数所包含的各个参数的类型信息进行比对匹配,且如果各个列的类型信息与内置函数所包含的各个参数的类型信息均对应匹配,则将各个列的类型信息填入内置函数对应的参数表中保存;否则就不将各个列的类型信息填入内置函数对应的参数表中保存;

在具体生成sql查询语句时,sql查询语句自动生成工具利用随机算法随机选取保存的列和内置函数,并将类型匹配的列和函数返回值生成数值比对(如<,=,>等)的第一sql查询子句;将参数表中填有列类型信息的内置函数生成第二sql查询子句;同时,sql查询语句自动生成工具将第一sql查询子句和第二sql查询子句与其它查询语句封装在一起,自动生成sql查询语句。

综上所述,本发明具有如下优点:1、采用将数据库表结构和内置函数文件外置到数据库外的方式,可使在数据库没有启动驱动或者没有安装数据库驱动的情况下(即数据库与sql查询语句自动生成工具没有交互的情况下),也可以使用sql查询语句自动生成工具来生成sql查询语句,这可为实际的使用带来较大的方便;

2、在更新数据库的内置函数时,只需要对外置的第一文本文件和第二文本文件直接进行修改或者增加即可,而不需要去修改sql查询语句自动生成工具中的代码,因此,不仅可以节省时间,而且可以增强扩展性;

3、将sql查询语句自动生成工具的输入和输出格式进行统一,这可以使sql查询语句自动生成工具能够适用于大部分数据库的使用需求,提高兼容性。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

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