结构化查询语言生成系统及方法技术方案

技术编号:2912066 阅读:285 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种结构化查询语言生成系统及方法,目的在于解决依赖SQL语句撰写经验的限制,以及执行效能不佳的问题,通过图形化界面供使用者生成SQL语句,藉以辅助使用者选择效能良好的SQL语句,从而达到提升SQL语句撰写便利性及数据库查询效率的技术功效。

【技术实现步骤摘要】

本专利技术是有关于一种计算机语言生成系统及方法,特别涉及一种针对结构化查询语言的生成系统及其方法。
技术介绍
近年来,随着网路技术的蓬勃发展,数据库的相关应用如雨后春笋般冒出,如电子商务及网络论坛等,然而,当数据库随着时间而逐步累积大量资料,以及数据关联性日益复杂时,想要查询所需的数据也势必使用到更为复杂的数据库查询语言。因此,如何更方便地生成复杂的数据库查询语言,以降低对SQL语句撰写经验的依赖程度,便成为各家厂商无不全力研究的议题。一般而言,数据库查询语言依不同的数据库种类如阶层式数据库、网路式数据库、关联式数据库及分散式数据库...等而有所不同,上述的数据库种类中又以关系型数据库如DBASE、 ACCESS、 MSSQL及MYSQL最为广泛,所述关系型数据库是使用一种称为结构化查询语言(Structured QueryLanguage, SQL)的数据库查询语言来进行查询。然而,SQL语句是以命令方式而非以可视化界面产生,所以在撰写上需依赖SQL语句撰写经验而有其不便性,且容易在不知内建函数的情况下,因而无法使用效率较佳的函数来生成能够达成相同查询目的的SQL语句,产生依赖SQL语句撰写经验的限制,以及执行效能不佳的问题。因此,目前有厂商发表通过图形化界面来才喿作数据库,并且能够生成对应操作的SQL语句的技术,进而达到辅助使用者生成SQL语句的目的。上述技术虽然可辅助使用者生成SQL语句,但却无法针对不同的数据库生成合适的SQL语句,且无法产生能够达成相同查询目的的多种SQL语句并进行效能测试,用以提供使用者选择效率较佳的SQL语句,因此,上4述技术同样不足以解决依赖SQL语句撰写经验的限制,以及执行效能不佳的问题。综上所述,可知先前技术中长期以来一直存在依赖SQL语句撰写经验的限制,以及执行效能不佳的问题,因此实有必要提出改进的技术手段,来解决此一问题。
技术实现思路
有鉴于先前技术存在依赖SQL语句撰写经验的限制,以及执行效能不佳的问题,本专利技术公开了 一种。本专利技术所公开的结构化查询语言生成系统,包含语句储存模块、函数储存模块、配置侦测模块、输入模块及语句生成模块。其中,语句储存模块,用以储存等效语句;函数储存;f莫块,用以储存数据库所内建的SQL函数;配置侦测模块,用以侦测所选择的数据库,并将侦测结果记录于配置信息;输入模块,根据配置信息及SQL函数产生输入窗口,用以提供输入选择条件;语句生成模块,用以接收选择条件,并依据等效语句生成SQL语句。另外,所述系统还包含效能测试模块,用以通过效能函数计算并显示SQL语句的执行效能。至于本专利技术的结构化查询语言生成方法,包含下列步骤建立等效语句;记录数据库所内建的SQL函数;侦测所选择的数据库,并将侦测结果记录于配置信息;根据配置信息及SQL函数产生输入窗口,用以提供输入选择条件;接收选择条件,并依据等效语句生成SQL语句。另外,所述方法还包含通过效能函数计算并显示SQL语句的执行效能的步骤。本专利技术所公开的系统与方法如上,与先前技术之间的差异在于本专利技术通过图形化界面提供使用者生成SQL语句,并对所生成的SQL语句进行效能测试,藉以辅助使用者选择效能良好的SQL语句。通过上述技术手段,本专利技术可以达成提升SQL语句撰写便利性及数据库查询效率的功效。附图说明图1为本专利技术结构化查询语言生成系统的方块图。图2为本专利技术结构化查询语言生成方法的流程图。图3为应用本专利技术生成查询指令的输入窗口示意图。具体实施例方式以下将配合附图及实施例来详细说明本专利技术的实施方式,藉此对本专利技术如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。首先,在说明本专利技术所提出的之前,先对自行定义的等效语句作说明,在本专利技术中所提及的等效语句是指能够产生相同执行结果的不同SQL语句,举例来说若数据库内有 一个名称为table的数据表,该数据表内有两个字段分别为namel及name2,当要显示此数据表内所有数据时,可使用SQL语句为"select namel, name2 from table"来达成,除此之外,亦可使用SQL语句为"select* from table"来达到同样的目的,所述两个SQL语句即为等效语句。请参阅图l,图1为本专利技术结构化查询语言生成系统的方块图,其中包含语句储存模块101、函数储存模块102、配置侦测模块103、输入模块104、语句生成模块105及效能测试模块106。其中,语句储存模块101用以储存等效语句,所述等效语句如同前面的说明,是指能够产生相同执行结果的不同SQL语句,在此不再赘述。函数储存才莫块102用以储存数据库所内建的SQL函数,所述SQL函数是指数据库所内建的SQL函数,包含数学函数、字符串函数、格式化函数、时间函数、操作函数及系统函数,由于不同的数据库如MSSQL或MySQL所内建的SQL函数亦有所差异,所以可储存不同数据库的SQL函数供使用者选择。配置侦测模块103用以侦测所选择的数据库,并将侦测结果记录于配置信息,此配置信息所记录的信息包含数据库名称、数据库中的数据表名称及数据表的字段名称,所述侦测结果是指配置侦测模块103通过已知的技术手段(即数据库所内建的函数)侦测使用者所选择的数据库,并得到数据库中的信息,举例来说通过数据库所内建的函数如mysql—list—dbs来取得数据库名称,接着将得到的数据库名称以参数方式通过函数如mysql—list_tables及mysql—tablename来取得数据库中的数据表名称,并再以数据表名称作为参数传递至内建的函数如mysql—list_fields及mysql_field_name用以取得数据表的字段名称,接着将所得到的数据库名称、数据库中的数据表名称及数据表的字段名称记录于配置信息中。经由上述例子可得知,所述配置信息是通过配置侦测模块103侦测所选择的数据库后所产生,而例子中所提函数的实际用法为已知技术,故在此不再作赘述。上述举例是以MySQL数据库及其内建的函数为例,然在实施上并不以此为限。输入模 块104根据配置信息及函数储存模块102中的SQL函数产生输入窗口,用以提供使用者输入选择条件,举例来说SQL指令(例如select)、配置信息中的信息(例如数据表名称)、SQL函数(例如"SUM()")及操作符(例如"=,,)皆称为选择条件。另外,此输入窗口除了以程式的窗口界面显示外,亦可通过网页的方式呈现。语句生成模块105用以接收使用者输入的选择条件,并依据等效语句生成SQL语句(稍后将配合图3以实施例的方式进行说明)。效能测试模块106通过效能函数计算并显示SQL语句的执行效能,所述效能函数是数据库所内建用来测试效能的函数(例如MySQL数据库的效能函数为"benchmark()")。如图2所示,图2为本专利技术结构化查询语言生成方法的流程图,包含下列步骤建立等效语句(步骤201);记录数据库所内建的SQL函数(步骤202);侦测所选择的数据库,并将侦测结果记录于配置信息(步骤203);根据配置信息及SQL函数产生输入窗口,用以提供输入选择条件(步骤204);接收选择条件,并依据等效语句生成SQL语句(步骤205);通过效能函数计算并显示SQL语句的执行效能(步骤2本文档来自技高网
...

【技术保护点】
一种结构化查询语言生成系统,其特征在于,包含: 一语句储存模块,用以储存至少一等效语句; 一函数储存模块,用以储存至少一数据库所内建的至少一SQL函数; 一配置侦测模块,用以侦测所选择的该数据库,并将侦测结果记录于一配置信息; 一输入模块,根据该配置信息及所述SQL函数产生一输入窗口,用以提供输入至少一选择条件;及 一语句生成模块,用以接收所述选择条件,并依据所述等效语句生成至少一SQL语句。

【技术特征摘要】

【专利技术属性】
技术研发人员:邱全成许国华
申请(专利权)人:英业达股份有限公司
类型:发明
国别省市:71[中国|台湾]

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

1