CN101464862A - 结构化查询语言生成系统及方法 - Google Patents

结构化查询语言生成系统及方法 Download PDF

Info

Publication number
CN101464862A
CN101464862A CNA2007101606216A CN200710160621A CN101464862A CN 101464862 A CN101464862 A CN 101464862A CN A2007101606216 A CNA2007101606216 A CN A2007101606216A CN 200710160621 A CN200710160621 A CN 200710160621A CN 101464862 A CN101464862 A CN 101464862A
Authority
CN
China
Prior art keywords
sql
function
statement
database
order
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
CNA2007101606216A
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.)
Inventec Corp
Original Assignee
Inventec Corp
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 Inventec Corp filed Critical Inventec Corp
Priority to CNA2007101606216A priority Critical patent/CN101464862A/zh
Publication of CN101464862A publication Critical patent/CN101464862A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

结构化查询语言生成系统及方法
技术领域
本发明是有关于一种计算机语言生成系统及方法,特别涉及一种针对结构化查询语言的生成系统及其方法。
背景技术
近年来,随着网路技术的蓬勃发展,数据库的相关应用如雨后春笋般冒出,如:电子商务及网络论坛等,然而,当数据库随着时间而逐步累积大量资料,以及数据关联性日益复杂时,想要查询所需的数据也势必使用到更为复杂的数据库查询语言。因此,如何更方便地生成复杂的数据库查询语言,以降低对SQL语句撰写经验的依赖程度,便成为各家厂商无不全力研究的议题。
一般而言,数据库查询语言依不同的数据库种类如:阶层式数据库、网路式数据库、关联式数据库及分散式数据库...等而有所不同,上述的数据库种类中又以关系型数据库如:DBASE、ACCESS、MSSQL及MYSQL最为广泛,所述关系型数据库是使用一种称为结构化查询语言(Structured QueryLanguage,SQL)的数据库查询语言来进行查询。然而,SQL语句是以命令方式而非以可视化界面产生,所以在撰写上需依赖SQL语句撰写经验而有其不便性,且容易在不知内建函数的情况下,因而无法使用效率较佳的函数来生成能够达成相同查询目的的SQL语句,产生依赖SQL语句撰写经验的限制,以及执行效能不佳的问题。
因此,目前有厂商发表通过图形化界面来操作数据库,并且能够生成对应操作的SQL语句的技术,进而达到辅助使用者生成SQL语句的目的。
上述技术虽然可辅助使用者生成SQL语句,但却无法针对不同的数据库生成合适的SQL语句,且无法产生能够达成相同查询目的的多种SQL语句并进行效能测试,用以提供使用者选择效率较佳的SQL语句,因此,上述技术同样不足以解决依赖SQL语句撰写经验的限制,以及执行效能不佳的问题。
综上所述,可知先前技术中长期以来一直存在依赖SQL语句撰写经验的限制,以及执行效能不佳的问题,因此实有必要提出改进的技术手段,来解决此一问题。
发明内容
有鉴于先前技术存在依赖SQL语句撰写经验的限制,以及执行效能不佳的问题,本发明公开了一种结构化查询语言生成系统及方法。
本发明所公开的结构化查询语言生成系统,包含:语句储存模块、函数储存模块、配置侦测模块、输入模块及语句生成模块。其中,语句储存模块,用以储存等效语句;函数储存模块,用以储存数据库所内建的SQL函数;配置侦测模块,用以侦测所选择的数据库,并将侦测结果记录于配置信息;输入模块,根据配置信息及SQL函数产生输入窗口,用以提供输入选择条件;语句生成模块,用以接收选择条件,并依据等效语句生成SQL语句。另外,所述系统还包含效能测试模块,用以通过效能函数计算并显示SQL语句的执行效能。
至于本发明的结构化查询语言生成方法,包含下列步骤:建立等效语句;记录数据库所内建的SQL函数;侦测所选择的数据库,并将侦测结果记录于配置信息;根据配置信息及SQL函数产生输入窗口,用以提供输入选择条件;接收选择条件,并依据等效语句生成SQL语句。另外,所述方法还包含通过效能函数计算并显示SQL语句的执行效能的步骤。
本发明所公开的系统与方法如上,与先前技术之间的差异在于本发明通过图形化界面提供使用者生成SQL语句,并对所生成的SQL语句进行效能测试,藉以辅助使用者选择效能良好的SQL语句。
通过上述技术手段,本发明可以达成提升SQL语句撰写便利性及数据库查询效率的功效。
附图说明
图1为本发明结构化查询语言生成系统的方块图。
图2为本发明结构化查询语言生成方法的流程图。
图3为应用本发明生成查询指令的输入窗口示意图。
具体实施方式
以下将配合附图及实施例来详细说明本发明的实施方式,藉此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
首先,在说明本发明所提出的结构化查询语言生成系统及方法之前,先对自行定义的等效语句作说明,在本发明中所提及的等效语句是指能够产生相同执行结果的不同SQL语句,举例来说:若数据库内有一个名称为table的数据表,该数据表内有两个字段分别为name1及name2,当要显示此数据表内所有数据时,可使用SQL语句为“select name1,name2 from table”来达成,除此之外,亦可使用SQL语句为“select*from table”来达到同样的目的,所述两个SQL语句即为等效语句。
请参阅图1,图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语句的执行效能(步骤206)。
通过上述的系统及方法即可对不同的数据库生成合适的SQL语句,且更以此合适的SQL语句为基础来产生能够达成相同查询目的的多种SQL语句并进行效能测试,提供使用者选择效率较佳的SQL语句,达成解决依赖SQL语句撰写经验的限制,以及执行效能不彰的问题。
以下配合图3以实施例方式进行如下说明,请参阅图3,图3为应用本发明生成查询指令的输入窗口示意图,包含:输入窗口301、数据库选择组件310、函数选择组件311、函数说明块312、选择块一321、选择块二322、选择块三323、语句显示块330、确定组件341及清除组件342,所述输入窗口301内所含的组件并不以此为限。
承上所述,当使用者欲生成查询数据库的SQL语句时,可通过一个数据库登入界面(图中未示)来登入数据库,当登入成功后通过配置侦测模块103侦测登入的数据库,并将侦测结果(例如:侦测到数据库的名称为“DB”,且数据库内有两个名称为“user”及“user_a”的数据表,其中名称为“user”的数据表内有“id”及“name”两个字段;而名称为“user_a”的数据表内则有“id”及“action”两个字段)记录于配置信息中,由于侦测数据库的信息为已知技术,故在此不多作赘述。
接着,输入模块104根据已记录的配置信息及储存于函数储存模块102的SQL函数产生如图3所示的输入窗口301,由于不同数据库内建的SQL函数也不尽相同,因此输入窗口301提供数据库选择组件310让使用者选择数据库(例如:MySQL),并于函数选择组件311中列出对应数据库(例如:MySQL)的SQL函数供使用者选择,且在函数说明块312中显示函数的用法及说明。
接下来,使用者可通过选择块一321来输入欲查询的字段(例如:字段名称为“id"、“name"及“action");通过选择块二322输入欲查询的数据表(例如:数据表名称为“user"及“user_a"或全选);通过选择块三323输入操作数及操作符(例如:第一操作数为“user.id"、操作符为“="及第二操作数为“user_a.id"),虽然图3中是以勾选组件或下拉式选单来进行输入,然在实现上并未作如此的限定,举例来说:亦可通过文字输入块(图中未示)提供使用者进行输入。
当上述的选择条件输入完成,且使用者点选确定组件341后,语句生成模块105接收所输入的选择条件,并依据等效语句生成SQL语句(例如:“select id,name,action from user,user_a where user.id=user_a.id"及“select*from user LEFT JOIN user_a ON user.id=user_a.id"),所述依据等效语句生成SQL语句的过程如下:根据所输入的选择条件产生对应的SQL语句(例如:“select id,name,action from user,user_a where user.id=user_a.id"),并以此SQL语句作为生成另一SQL语句的基准;从储存于语句储存模块101中寻找匹配的等效语句,举例来说,以作为基准的SQL语句格式(例如:“select[字段参数a,字段参数b,字段参数c]from[表名参数a,表名参数b]where[表名参数a].[字段参数n]=[表名参数b].[字段参数n]")来寻找匹配的等效语句格式(例如:select[字段参数a,字段参数b,字段参数c]from[表名参数a]LEFT JOIN[表名参数b]ON[表名参数a].[字段参数n]=[表名参数b].[字段参数n]");将所有参数进行替换处理后生成另一SQL语句(例如:“select id,name,action from user LEFT JOIN user_a ON user.id=user_a.id");判断选择块一321内的字段是否全选,若是则以“*"取代前述所生成的另一SQL语句中的字段名称(例如:“id,name,action");最后,生成的另一SQL语句为“select*from user LEFT JOIN user_a ON user.id=user_a.id",并将所有生成的SQL语句显示于语句显示块330中,若使用者不满意所产生的SQL语句可通过点选清除组件342来清除语句显示块330中所显示的SQL语句。
效能测试模块106通过效能函数(例如:“benchmark()”)计算并显示所生成的SQL语句的执行效能,其执行效能的显示方式是以SQL语句的执行时间(例如:4.00秒)显示于相应的SQL语句后,如图3中的语句显示块330所示意。另外,所述效能函数的使用方法为已知技术,故在此不多作赘述。
综上所述,可知本发明与先前技术之间的差异在于通过图形化界面提供使用者生成SQL语句,并对所生成的SQL语句进行效能测试的技术手段,藉由此一技术手段可以辅助使用者选择效能良好的SQL语句从而解决先前技术中存在的问题,进而达成提升SQL语句撰写便利性及数据库查询效率的技术功效。
虽然本发明以前述的实施例公开如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明之精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书所附的权利要求所界定者为准。

Claims (10)

1、一种结构化查询语言生成系统,其特征在于,包含:
一语句储存模块,用以储存至少一等效语句;
一函数储存模块,用以储存至少一数据库所内建的至少一SQL函数;
一配置侦测模块,用以侦测所选择的该数据库,并将侦测结果记录于一配置信息;
一输入模块,根据该配置信息及所述SQL函数产生一输入窗口,用以提供输入至少一选择条件;及
一语句生成模块,用以接收所述选择条件,并依据所述等效语句生成至少一SQL语句。
2、如权利要求1所述的结构化查询语言生成系统,其特征在于,
其中所述系统还包含一效能测试模块,用以通过一效能函数计算并显示所述SQL语句的执行效能。
3、如权利要求1所述的结构化查询语言生成系统,其特征在于,
其中所述等效语句是指能够产生相同执行结果的不同SQL语句。
4、如权利要求1所述的结构化查询语言生成系统,其特征在于,
其中所述SQL函数包含数学函数、字符串函数、格式化函数、时间函数、操作函数及系统函数。
5、如权利要求1所述的结构化查询语言生成系统,其特征在于,
其中该配置信息包含该数据库名称、该数据库中至少一数据表名称及所述数据表的字段名称。
6、如权利要求2所述的结构化查询语言生成系统,其特征在于,
其中该效能函数为各该数据库所内建用以测试效能的函数。
7、一种结构化查询语言生成方法,其特征在于,其步骤包括:
建立至少一等效语句;
记录至少一数据库所内建的至少一SQL函数;
侦测所选择的该数据库,并将侦测结果记录于一配置信息;
根据该配置信息及所述SQL函数产生一输入窗口,用以提供输入至少一选择条件;及
接收所述选择条件,并依据所述等效语句生成至少一SQL语句。
8、如权利要求7所述的结构化查询语言生成方法,其特征在于,
其中该方法还包含通过一效能函数计算并显示所述SQL语句的执行效能的步骤。
9、如权利要求7所述的结构化查询语言生成方法,其特征在于,
其中所述SQL函数包含数学函数、字符串函数、格式化函数、时间函数、操作函数及系统函数。
10、如权利要求7所述的结构化查询语言生成方法,其特征在于,
其中该配置信息包含该数据库名称、该数据库中至少一数据表名称及所述数据表的字段名称。
CNA2007101606216A 2007-12-21 2007-12-21 结构化查询语言生成系统及方法 Pending CN101464862A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2007101606216A CN101464862A (zh) 2007-12-21 2007-12-21 结构化查询语言生成系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2007101606216A CN101464862A (zh) 2007-12-21 2007-12-21 结构化查询语言生成系统及方法

Publications (1)

Publication Number Publication Date
CN101464862A true CN101464862A (zh) 2009-06-24

Family

ID=40805445

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101606216A Pending CN101464862A (zh) 2007-12-21 2007-12-21 结构化查询语言生成系统及方法

Country Status (1)

Country Link
CN (1) CN101464862A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073642A (zh) * 2009-11-23 2011-05-25 英业达集团(天津)电子技术有限公司 自动生成结构化sql语句的方法与其电子装置
CN102436503A (zh) * 2011-12-22 2012-05-02 中国电子科技集团公司第十五研究所 数据条件过滤筛选方法及筛选器
CN102541521A (zh) * 2010-12-17 2012-07-04 中国银联股份有限公司 基于结构化查询语言的操作指令自动生成装置及方法
CN106294401A (zh) * 2015-05-21 2017-01-04 阿里巴巴集团控股有限公司 自动建立sql名单库的方法及装置
CN106933893A (zh) * 2015-12-31 2017-07-07 北京国双科技有限公司 多维度数据的查询方法及装置
US9880815B2 (en) 2013-01-22 2018-01-30 Aptitude Software Limited SQL visualizer
CN108388589A (zh) * 2018-01-30 2018-08-10 福建星瑞格软件有限公司 一种数据库sql查询语句自动生成的装置
CN108388588A (zh) * 2018-01-30 2018-08-10 福建星瑞格软件有限公司 sql语句自动生成工具的数据库函数离线读取方法及系统
CN108399196A (zh) * 2018-01-30 2018-08-14 福建星瑞格软件有限公司 数据库sql语句自动生成工具的sql自动执行方法及系统
CN108460092A (zh) * 2018-01-30 2018-08-28 福建星瑞格软件有限公司 包含数据库内置函数的sql查询语句自动生成方法及系统
CN108536342A (zh) * 2017-03-02 2018-09-14 腾讯科技(深圳)有限公司 一种数据查询方法及装置
CN108920543A (zh) * 2018-06-13 2018-11-30 珠海格力电器股份有限公司 查询和交互的方法及装置、计算机装置、存储介质
CN110019307A (zh) * 2017-12-28 2019-07-16 阿里巴巴集团控股有限公司 数据处理方法及装置
CN110096514A (zh) * 2019-04-01 2019-08-06 跬云(上海)信息科技有限公司 数据查询方法和装置
CN110109947A (zh) * 2017-12-28 2019-08-09 北京京东尚科信息技术有限公司 提取数据的方法和装置
CN111752549A (zh) * 2020-06-24 2020-10-09 中国银行股份有限公司 Sql函数生成方法及装置

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073642A (zh) * 2009-11-23 2011-05-25 英业达集团(天津)电子技术有限公司 自动生成结构化sql语句的方法与其电子装置
CN102541521A (zh) * 2010-12-17 2012-07-04 中国银联股份有限公司 基于结构化查询语言的操作指令自动生成装置及方法
CN102541521B (zh) * 2010-12-17 2015-03-25 中国银联股份有限公司 基于结构化查询语言的操作指令自动生成装置及方法
CN102436503A (zh) * 2011-12-22 2012-05-02 中国电子科技集团公司第十五研究所 数据条件过滤筛选方法及筛选器
US9880815B2 (en) 2013-01-22 2018-01-30 Aptitude Software Limited SQL visualizer
CN106294401A (zh) * 2015-05-21 2017-01-04 阿里巴巴集团控股有限公司 自动建立sql名单库的方法及装置
CN106933893B (zh) * 2015-12-31 2019-12-10 北京国双科技有限公司 多维度数据的查询方法及装置
CN106933893A (zh) * 2015-12-31 2017-07-07 北京国双科技有限公司 多维度数据的查询方法及装置
CN108536342B (zh) * 2017-03-02 2022-11-08 腾讯科技(深圳)有限公司 一种数据查询方法及装置
CN108536342A (zh) * 2017-03-02 2018-09-14 腾讯科技(深圳)有限公司 一种数据查询方法及装置
CN110019307A (zh) * 2017-12-28 2019-07-16 阿里巴巴集团控股有限公司 数据处理方法及装置
CN110109947A (zh) * 2017-12-28 2019-08-09 北京京东尚科信息技术有限公司 提取数据的方法和装置
CN110019307B (zh) * 2017-12-28 2023-09-01 阿里巴巴集团控股有限公司 数据处理方法及装置
CN108399196A (zh) * 2018-01-30 2018-08-14 福建星瑞格软件有限公司 数据库sql语句自动生成工具的sql自动执行方法及系统
CN108460092B (zh) * 2018-01-30 2022-09-16 福建星瑞格软件有限公司 包含数据库内置函数的sql查询语句自动生成方法及系统
CN108460092A (zh) * 2018-01-30 2018-08-28 福建星瑞格软件有限公司 包含数据库内置函数的sql查询语句自动生成方法及系统
CN108388588A (zh) * 2018-01-30 2018-08-10 福建星瑞格软件有限公司 sql语句自动生成工具的数据库函数离线读取方法及系统
CN108388589A (zh) * 2018-01-30 2018-08-10 福建星瑞格软件有限公司 一种数据库sql查询语句自动生成的装置
CN108388589B (zh) * 2018-01-30 2022-09-16 福建星瑞格软件有限公司 一种数据库sql查询语句自动生成的装置
CN108920543A (zh) * 2018-06-13 2018-11-30 珠海格力电器股份有限公司 查询和交互的方法及装置、计算机装置、存储介质
CN108920543B (zh) * 2018-06-13 2020-07-10 珠海格力电器股份有限公司 查询和交互的方法及装置、计算机装置、存储介质
CN110096514A (zh) * 2019-04-01 2019-08-06 跬云(上海)信息科技有限公司 数据查询方法和装置
CN111752549A (zh) * 2020-06-24 2020-10-09 中国银行股份有限公司 Sql函数生成方法及装置
CN111752549B (zh) * 2020-06-24 2023-07-21 中国银行股份有限公司 Sql函数生成方法及装置

Similar Documents

Publication Publication Date Title
CN101464862A (zh) 结构化查询语言生成系统及方法
CN102521416B (zh) 数据关联查询方法和数据关联查询装置
US8001128B2 (en) Selection of a set of optimal n-grams for indexing string data in a DBMS system under space constraints introduced by the system
CN100541493C (zh) 用于结构化文档管理的装置和方法
KR101369020B1 (ko) 보고명세로부터 olap 질의 생성시 불균형 계층에 대한 보상
KR102330547B1 (ko) 보고 생성 방법
US7743066B2 (en) Anonymous types for statically typed queries
US7523100B1 (en) Method and apparatus for using a rendered form as a search template
CN106933837A (zh) 一种数据库表模型及创建方法
US9223847B2 (en) Using dimension substitutions in OLAP cubes
CN104765731A (zh) 数据库查询优化方法和设备
CN101958987A (zh) 电信业务数据动态转换的方法及其系统
US20080016048A1 (en) Intelligent condition pruning for size minimization of dynamic, just in time tables
US20050223325A1 (en) Document structure-editing program, document structure-editing method, document structure-editing apparatus, and computer-readable recording medium having document structure-editing program recorded thereon
RU2010114245A (ru) Общая система редактирования моделей
CN115328894A (zh) 基于数据血缘的数据处理方法
US10509632B2 (en) Model augmentation in a model-driven application development environment
CN105843867A (zh) 基于元数据模型的检索方法和基于元数据模型的检索装置
EP1480120A2 (en) System and method for presenting multilingual metadata
CN109299101A (zh) 数据检索方法、装置、服务器和存储介质
CN110717073A (zh) 云流程平台中结合业务数据实现流程查询处理的系统及其方法
CN112825068B (zh) 数据血缘生成方法及装置
US20080082535A1 (en) Method and system for automatically generating a communication interface
CN102004633B (zh) 一种处理控件属性的方法及装置
Klerkx et al. How to share and reuse learning resources: the ARIADNE experience

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090624