一种SQL语句生成方法及系统.pdf

上传人:r5 文档编号:974039 上传时间:2018-03-22 格式:PDF 页数:23 大小:862.38KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910178335.1

申请日:

2009.10.16

公开号:

CN101673287A

公开日:

2010.03.17

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/30公开日:20100317|||实质审查的生效IPC(主分类):G06F 17/30申请日:20091016|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

金蝶软件(中国)有限公司

发明人:

邹 俊

地址:

518057广东省深圳市南山区深南大道市高新技术工业村W1-B4

优先权:

专利代理机构:

深圳市深佳知识产权代理事务所(普通合伙)

代理人:

彭愿洁;李文红

PDF下载: PDF下载
内容摘要

本发明提供一种SQL语句生成方法及系统。一种SQL语句生成方法,包括:设置字段及表的描述表项;填充与所述描述表项对应的描述信息,生成数据字典;根据所述数据字典及结构化查询语言SQL语句生成规则生成SQL语句。本发明实施例中,通过首先设置统一的描述表项,然后填充入描述信息,为实现该发明目的提供了可能,然后根据SQL语句生成规则,应用数据字典的信息套入SQL语句的模板从而实现了自动快速,大批量的生成SQL语句,提高了SQL语句的编写效率。

权利要求书

1、  一种SQL语句生成方法,其特征在于,包括:
设置字段及表的描述表项;
填充与所述描述表项对应的描述信息,生成数据字典;
根据所述数据字典及结构化查询语言SQL语句生成规则生成SQL语句。

2、
  根据权利要求1所述的方法,其特征在于,所述填充与所述描述表项对应的描述信息具体为:
根据数据实体录入与所述描述表项对应的表实体描述信息和字段实体描述信息;或者,
导入外部数据源的描述信息并与所述描述表项对应。

3、
  根据权利要求2所述的方法,其特征在于,所述外部数据源包括:
数据库系统表、产品数据管理库、可扩展标记语言文件、EXCEL文件、资源文件。

4、
  根据权利要求1至3中任意一项所述的方法,其特征在于,所述描述表项包括控制信息描述表项,所述与所述描述表项对应的描述信息包括控制信息。

5、
  根据权利要求4所述的方法,其特征在于,生成的所述SQL语句符合所述控制信息的要求。

6、
  根据权利要求1至3中任意一项所述的方法,其特征在于,在所述生成数据字典之后,还包括:
在所述数据字典中选择数据库实体表;
依据所述数据实体表之间的关系构建业务模型;
所述根据所述数据字典及结构化查询语言SQL语句生成规则生成SQL语句,具体为:
根据所述业务模型及SQL语句生成规则生成SQL语句。

7、
  一种SQL语句生成系统,其特征在于,包括:
设置单元,用于设置字段及表的描述表项;
填充单元,用于填充与所述描述表项对应的描述信息,生成数据字典;
生成单元,用于根据所述数据字典及结构化查询语言SQL语句生成规则生成SQL语句。

8、
  根据权利要求7所述的系统,其特征在于,
所述填充单元,具体用于根据数据实体录入与所述描述表项对应的表实体描述信息和字段实体描述信息,生成数据字典;或者,
所述填充单元,具体用于导入外部数据源的描述信息并与所述描述表项对应,生成数据字典。

9、
  根据权利要求7或8所述的系统,其特征在于,所述描述表项包括控制信息描述表项,所述与所述描述表项对应的描述信息包括控制信息。

10、
  根据权利要求9所述的系统,其特征在于,所述SQL语句符合所述控制信息的要求。

11、
  根据权利要求7或8所述的系统,其特征在于,还包括:
选择单元,用于在所述数据字典中选择数据库实体表;
构建单元,用于依据所述数据实体表之间的关系构建业务模型;
所述生成单元,具体用于根据所述业务模型及SQL语句生成规则生成SQL语句。

说明书

一种SQL语句生成方法及系统
技术领域
本发明涉数据库处理技术领域,尤其涉及一种SQL语句生成方法及系统。
背景技术
随着计算机技术的迅速发展,数据库的相关应用越来越广泛。然而,当数据库累积的资料越来越多,数据的关联性日益复杂时,如何方便快速的对数据库进行查询和管理操作成为各企业厂商研究的重要课题,在此环境下,各种数据库的操作语言应运而生。
SQL(Structured Query Language,结构化查询语言),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。SQL语句具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的。因此,SQL语句得到越来越广泛的应用。
现有技术中,SQL语句的生成方法是由具有一定撰写经验的开发人员根据数据库实体,使用代码构建数据库内各表的关系,进行SQL语句的编写。发明人在实现本发明的过程中发现,这种人工编写SQL语句的方式效率过低,不能快速批量形成用于编程、业务应用、报表查询等环境所需要的SQL语句,严重阻碍了SQL语句的应用。
发明内容
本发明实施例提供一种SQL语句生成方法及系统,能够快速批量生成SQL语句,提高效率。
为了解决上述技术问题,本发明实施例的技术方案如下:
一种SQL语句生成方法,包括:
设置字段及表的描述表项;
填充与所述描述表项对应的描述信息,生成数据字典;
根据所述数据字典及结构化查询语言SQL语句生成规则生成SQL语句。
进一步,所述填充与所述描述表项对应的描述信息具体为:
根据数据实体录入与所述描述表项对应的表实体描述信息和字段实体描述信息;或者,
导入外部数据源的描述信息并与所述描述表项对应。
进一步,所述外部数据源包括:
数据库系统表、产品数据管理库、可扩展标记语言文件、EXCEL文件、资源文件。
进一步,所述描述表项包括控制信息描述表项,所述与所述描述表项对应的描述信息包括控制信息。
进一步,生成的所述SQL语句符合所述控制信息的要求。
进一步,在所述生成数据字典之后,还包括:
在所述数据字典中选择数据库实体表;
依据所述数据实体表之间的关系构建业务模型;
所述根据所述数据字典及结构化查询语言SQL语句生成规则生成SQL语句,具体为:
根据所述业务模型及SQL语句生成规则生成SQL语句。
一种SQL语句生成系统,包括:
设置单元,用于设置字段及表的描述表项;
填充单元,用于填充与所述描述表项对应的描述信息,生成数据字典;
生成单元,用于根据所述数据字典及结构化查询语言SQL语句生成规则生成SQL语句。
进一步,所述填充单元,具体用于根据数据实体录入与所述描述表项对应的表实体描述信息和字段实体描述信息,生成数据字典;或者,
所述填充单元,具体用于导入外部数据源的描述信息并与所述描述表项对应,生成数据字典。
进一步,所述描述表项包括控制信息描述表项,所述与所述描述表项对应的描述信息包括控制信息。
进一步,所述SQL语句符合所述控制信息的要求。
进一步,还包括:
选择单元,用于在所述数据字典中选择数据库实体表;
构建单元,用于依据所述数据实体表之间的关系构建业务模型;
所述生成单元,具体用于根据所述业务模型及SQL语句生成规则生成SQL语句。
现有技术中,没有形成统一名称的描述表项,对数据库实体没有详细的描述信息,开发人员需要根据经验和一定的编写技巧逐条编写SQL语句,本发明实施例中,通过首先设置统一的描述表项,然后填充入描述信息,为实现该发明目的提供了可能,然后根据SQL语句生成规则,应用数据字典的信息套入SQL语句的模板从而实现了自动快速,大批量的生成SQL语句,提高了SQL语句的编写效率。
附图说明
图1是本发明实施例一种SQL语句生成方法的流程图;
图2是本发明实施例一的方法流程图;
图3是本发明实施例二的方法流程图;
图4是本发明实施例一种SQL语句生成系统的结构示意图;
图5是本发明实施例另一种SQL语句生成系统的结构示意图。
具体实施方式
为了使本领域技术人员能进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,附图仅提供参考与说明,并非用来限制本发明。
下面结合附图和实施例,对本发明的技术方案进行描述。
参照图1,为本发明实施例一种SQL语句生成方法的流程图。
该方法可以包括:
步骤101,设置字段及表的描述表项。
在本步骤中,通过设置字段描述表项和表描述表项,来统一对数据库实体的描述,为后续自动快速,成批量的生成SQL语句提供条件。
字段描述表项和表描述表项主要是一些名称的说明,其中,字段描述表项可以包括:字段名称、表名称、字段类别、字段类型、字段长度、字段精度、是否允许为空,顺序号、默认值等。表描述表项可以包括:表名称,表物理名称、表类别、是否为视图、是否内置表、主键字段设置、表选设置、表类型设置等,该描述表项可以根据对数据实体的所需操作进行具体设置,不局限于上述描述表项。
步骤102,填充与所述描述表项对应的描述信息,生成数据字典。
该填充描述信息可以有多种方式实现,例如直接功能录入或导入其它现有的描述信息等,具体请参照后续实施例。填充完成后形成的对应关系表即构成数据字典。
步骤103,根据所述数据字典及SQL语句生成规则生成SQL语句。
在生成数据字典后,根据SQL语句生成规则可以将该数据字典中各表名及需要操作的描述表项,以及描述表项和描述信息的对应关系等,套入SQL语句的模板即可实现自动快速,批量生成对该数据字典进行操作的SQL语句。
现有技术中,没有形成统一名称的描述表项,对数据库实体没有详细的描述信息,开发人员需要根据经验和一定的编写技巧逐条编写SQL语句,本发明实施例中,通过首先设置统一的描述表项,然后填充入描述信息,为实现该发明目的提供了可能,然后根据SQL语句生成规则,应用数据字典的信息套入SQL语句的模板从而实现了自动快速,大批量的生成SQL语句,提高了SQL语句的编写效率。
下面通过具体的实施例说明SQL语句的生成方法。
参照图2,为本发明实施例一的方法流程图。
该方法可以包括步骤:
步骤201,设置字段描述表项,生成HRMS_Fields(字段信息描述表)。
该字段描述表项用于描述数据库表字段信息。如表1所示为HRMS_Fields表,该HRMS_Fields中包括字段信息描述表项,如字段名称、表名称、字段类别、字段类型、字段长度、字段精度、是否允许为空,顺序号、默认值等,也还可以包括字段的控制信息描述表项,如输入控件类型、是否锁定、是否内置、字段引用关系设置、视图引用关系设置、字段选项设置等。
表1.HRMS_Fields:

步骤202,设置表描述表项,生成HRMS_Table(表信息描述表)。
该表描述表项用于描述数据库实体表信息。如表2所示为HRMS_Table表,该HRMS_Table表中包括表信息描述表项,如表名称,表物理名称、表类别、是否为视图、是否内置表、主键字段设置、表选设置、表类型设置等,也还可以包括表的控制信息描述表项,如是否允许新增字段、是否允许修改字段、是否为锁定表、是否为同构表等。以上步骤201和步骤202的顺序可以根据需要进行调整。
表2.HRMS_Table:

步骤203,根据数据实体录入与所述描述表项对应的表实体描述信息和字段实体描述信息,生成数据字典。
本实施例中的数据实体如表3~表6所示,包括国家代码表、组织单元表、职位表、职员表。
表3.国家代码表:

  国家ID  国家代码  国家名称  排序  ID  Code  Name  Index  99D89A91-101E-49A6-8A80-CC08E454431E  156  中国  1  E271BB0C-AE24-4817-95C5-FDB9F16F050D  840  美国  2  09E6CC9B-38A7-422A-A8AE-183631A1EE64  826  英国  3  40B808D5-478F-41E2-9774-5DD78795701D  280  德国  4

表4.组织单元表:
  组织单元ID  组织单元代码  组织单元名称  ID  Code  Name  82EAFDD7-96D6-486A-BE8F-9C47DB2E674B  001  绿色原野集团  5CBAF59A-0E5E-4759-8817-2E9409C75548  001.001  深圳分公司  B71E29ED-ABF7-4F70-8EC0-02306AF5E73F  001.001.01  人力资源部  D9A29A89-8E16-42B3-9E0D-06D8DDC074E3  001.002  广州分公司

表5.职位表:
  组织单元ID  组织单元代码  组织单元名称  ID  Code  Name  0FFA040F-B116-4372-BB7E-C558F228D81A  001  总裁  021D950F-28AA-4CCA-B713-1CE30D2039C6  002  机构总经理  2C152B5F-55F7-450C-8D09-50D4B8152E4B  003  人力资源总监  9BE3ECC8-8FE3-4C64-95E9-8F514C6036AE  004  部门经理

表6.职员表:
  职员ID  代码  名称  性别  国家  所在部门  职位  ID  Code  Name  Sex  CountryID  ORGUnitID  PositionID  1976B722-0A85-  415A-9421-  B5062307ADFB   SZ001   张三   男  99D89A91-101E-  49A6-8A80-  CC08E454431E  5CBAF59A-0E5E-  4759-8817-  2E9409C75548  021D950F-28AA-4CCA-  B713-1CE30D2039C6

  4CB5A69B-C29B-  4C11-BC6E-  D74023AB1DD2  SZ002  李四  男  99D89A91-101E-  49A6-8A80-  CC08E454431E  B71E29ED-ABF7-  4F70-8EC0-  02306AF5E73F  2C152B5F-55F7-450C-  8D09-50D4B8152E4B  9BEE198B-97B7-  4643-868C-  708CC20B7650   SZ003   王五   女  99D89A91-101E-  49A6-8A80-  CC08E454431E  B71E29ED-ABF7-  4F70-8EC0-  02306AF5E73F  9BE3ECC8-8FE3-4C64-  95E9-8F514C6036AE  E2BC2DB4-F5B5-  496F-BF2C-  31A58AE021CC   SZ004   刘六   男  99D89A91-101E-  49A6-8A80-  CC08E454431E  D9A29A89-8E16-  42B3-9E0D-  06D8DDC074E3  9BE3ECC8-8FE3-4C64-  95E9-8F514C6036AE

以国家代码表为例,国家代码表中设置有国家ID、国家代码、国家名称及排序等字段。将该国家代码表中的表实体描述信息和字段实体描述信息分别录入HRMS_Table和HRMS_Fields中,组织单元表等其它表类似,录入后形成如表7、表8所示的HRMS_Table和HRMS_Fields,这两张记录有描述信息的数据库表即构成了数据字典。
表7.HRMS_Table:
  唯一标识  ID  7A772099-0CEE-  4D1A-8EC9-  475AC46986A5  A7EC59B6-49D0-  4090-A3A6-  24C4A4A6DD0B  4714BC75-0E3A-  43BF-B725-  9D758FD10756  9ABB7FC6-724C-  446F-AD4C-  7672FFB3B610  表名Name  国家代码表  组织单元表  职位表  职员表  系统名Table Name  HR_WorldStatus  ORG_Unit  ORG_Position  HR_Employee  描述信息  Description  国家代码表  组织单元表  职位表  职员表  是否内置  Built_in  1  1  1  1  主键字段标识

  PrimaryKeyID  是否视图  IsView  0  0  0  0  顺序号  FSequence  1  2  3  4  是否允许  新增字段  IsAllowAddNew  0  1  1  1  是否允许  修改字段  IsAllowEditField  0  1  1  1  是否允许  选项设置  IsEditOption  0  0  0  1  表选项  设置状态  ViewStatus  0  0  0  1  表类型  TableType  1  2  3  3  是否锁定  IsLocked  1  0  0  0

表8.HRMS_Fields:(其中,表8截取部分信息进行说明)
  字段ID  字段名称  字段系统名称  数据类型  字段长度  ID  Name  FieldName  DataType  DataLength

  B6319512-DBE1-45A3-98E3-1A2234EAFF2E  国家ID  ID  uniqueidentifier  16  D039EDE1-DECE-43D9-8929-05F97B135E0D  国家代码  Code  nvarchar  100  4D73F72B-2687-4E90-99A8-6B2656232636  国家名称  Name  nvarchar  100  992124BF-A888-48D0-9133-D8913B1A6A75  排序  Index  int  8  D302DC85-C7D4-43E1-9CB9-FD7B7ECD48C4  组织单元  ID  ID  uniqueidentifier  16  EFEF6707-1BF6-4997-80B6-BD526A9158D2  组织单元  代码  Code  nvarchar  100  BAAF1212-7DD3-4139-87D3-2ADB1E22A31A  组织单元  名称  Name  nvarchar  100  23D3DF39-B5EE-4FBB-975D-84BD0047733C  职位ID  ID  uniqueidentifier  16  2E9C519D-F066-4B28-8113-59830D4EE730  职位代码  Code  nvarchar  100  71734076-C4BF-42C7-8DF8-6A9EE8033EAC  职位名称  Name  nvarchar  100  C9326C3E-B95B-4838-87CA-914EACA81535  职员ID  ID  uniqueidentifier  16  CBB1DCBF-2673-45FD-B1AA-9C14BFB7D06E  职员代码  Code  nvarchar  100  626D917F-69C3-4C31-A43D-21A2B3FDA197  职员名称  Name  nvarchar  20  16E5F98F-A913-47C8-96FF-1A801719FF87  性别  Sex  nvarchar  10  3BB7EAAE-3B59-46C1-A3C6-84ABF7547ABB  国家  CountryID  uniqueidentifier  16  58CAC132-2093-4B2D-B115-47109201D7B9  所在部门  ORGUnitID  uniqueidentifier  16  388564A3-2288-4DC9-A5CF-BE38040DE63E  职位  PositionID  uniqueidentifier  16

在本发明的另一实施例中,填充与所述描述表项对应的描述信息的过程也可以采用另一种方式,即直接导入外部数据源的描述信息并与所述描述表项对应,其中外部数据源可以包括:数据库系统表、PDM(Product DataManagement,产品数据管理)库、XML(Extensible Markup Language,可扩展标记语言)文件、EXCEL文件、资源文件等。这些都是构建数据字典的描述外部导入资源,是一种结构化的描述数据库或文件,这种外部导入资源中可以有对数据库表、字段实体的描述,通过外部资源的导入,可以快速构建数据字典的表、字段描述。
步骤204,根据数据字典及SQL语句生成规则生成SQL语句。
如果步骤201和步骤202中设定的字段及表的描述表项中包括控制信息描述表项,则与描述表项对应的描述信息中也就包括控制信息,那么在本步骤中生成的所述SQL语句需要符合控制信息的要求,如是否锁定。
本步骤中,还可以对SQL语句的种类进行区分,根据选择的SQL语句的种类生成对应的SQL语句。该种类可以包括构建数据字典描述SQL和构建数据实体SQL,其中,构建数据字典描述SQL可以包括:表类别(新增、修改、删除)SQL、字段类别(新增、修改、删除)SQL、数据字典(完整新增、修改、删除)SQL、表属性(新增、修改、删除)SQL、字段属性(新增、修改、删除)SQL等;构建数据实体SQL可以包括:表物理结构(完整新增、修改、删除)SQL、字段物理结构(新增、修改、删除)SQL、表主键SQL、表索引SQL等。举例说明本实施例中生成的SQL语句:
-清除表的主键信息
Update HRMS_Tables Set PrimaryKeyID=Null WhereID=′{7A772099-0CEE-4D1A-8EC9-475AC46986A5}′
GO
--清除字段引用关系
Update HRMS_Fields Set RefFieldID=Null WhereTableID=′{7A772099-0CEE-4D1A-8EC9-475AC46986A5}′
GO
--清除显示字段引用关系
Update HRMS_Fields Set RefShowFieldID=Null WhereTableID=′{7A772099-0CEE-4D1A-8EC9-475AC46986A5}′
GO
创建[国家代码表-HR_WorldStatus]
CREATE TABLE[HM_EM_WorldStatus_Code](
[ID]uniqueidentifier NOT NULL,
[Code][nvarchar](100)NOT NULL,
[Name][nvarchar](100)NULL,
[Index][int]NULL)
本实施例实现了自动快速,大批量的生成SQL语句,提高了SQL语句的编写效率。
对于数据库实体中包含多个数据表,且各数据表具有一定的相关性的情况,还可以根据各数据表建立业务模型,生成对业务模型操作的SQL语句。下面通过具体的实施例进行说明。
参照图3,为本发明实施例二的方法流程图。
该方法可以包括步骤:
步骤301,生成数据字典。
该步骤与前述实施例的相应步骤类似,此处不再赘述。
步骤302,在所述数据字典中选择数据库实体表。
仍以前述是实例中的各数据表为例,国家代码表、组织单元表、职位表、职员表之间具有一定的对应关系。
步骤303,依据所述数据实体表之间的关系构建业务模型。
一个业务模型可能是一张数据实体表:如“民族”的业务模型,可能就由一张“民族表”的数据库实体构成;也可能由多张数据库表实体构成,这些数据表实体,有一张主表,可能还有一张或多张从表和辅助表;如:“员工工资数据”的业务模型,主表“员工工资数据表”,从表“工资期间表”、“员工表”,辅助表“学历表”,“银行表”,“员工类别表”,主要用于查询和辅助过滤分组等。
本步骤中,首先,以前述实施例中的职员表作为主表,形成该表的HR业务实体表HR_Base_Model,其中该表的描述信息可以包括:业务模型ID、业务模型名称、业务模型描述、主表描述、顺序号等,如表9所示。
表9.HR_Base_Model:
  业务实体  名称  内置类型  表ID  顺序号  描述  BusiModelID  Name  FixedType  TableID  Sequence  Remark  6E74CD86-7E65-4DCC  -9EDC-396CFCF00F5E  职员业务模型  1  9ABB7FC6-724C-446F  -AD4C-7672FFB3B610  1  职员业务模型

然后,通过HR业务表HR_Base_Table来设置业务模型中包含哪些表和字段,该表的描述信息如表10所示。
表10.HR_Base_Table:
  业务表  业务实体  表ID  父级表  对应关系  类型  顺序号  是否主  业务表   BusiTableID   BusiModelID   TableID   ParentID  Cardina-  lity  Type   Sequence   IsPrimaryTable  D3DE8D54-A943  -432C-B527-  9CFDDCD9F493  6E74CD86-7E65  -4DCC-9EDC-  396CFCF00F5E  9ABB7FC6-724C  -446F-AD4C-  7672FFB3B610   1   1   1  14053AEC-798E  -44A2-87ED-  368025AA2D65  6E74CD86-7E65  -4DCC-9EDC-  396CFCF00F5E  7A772099-0CEE  -4D1A-8EC9-  475AC46986A5  9ABB7FC6-724C  -446F-AD4C-  7672FFB3B610   1   1   1  0F003600-A8E9  -493C-B82E-  3814837D3A75  6E74CD86-7E65  -4DCC-9EDC-  396CFCF00F5E  A7EC59B6-49D0  -4090-A3A6-  24C4A4A6DD0B  9ABB7FC6-724C  -446F-AD4C-  7672FFB3B610   1   1   1  91546925-F60D  6E74CD86-7E65  4714BC75-0E3A  9ABB7FC6-724C  1  1  1

  -4042-ABCA-  5DBA3476F55F  -4DCC-9EDC-  396CFCF00F5E  -43BF-B725-  9D758FD10756  -446F-AD4C-  7672FFB3B610

最后、通过HR业务表关联信息表HR_Base_Reference,表明职员表与国家代码表、组织单元表、职位表之间的主从关系,该表的描述信息如表11所示。
表11.HR_Base_Reference:
  业务表  父表字段ID  父表字段  子表字段ID  子表字段  BusiTableID  ParentFieldID  ParentField  ChildFieldID  ChildField  14053AEC-798E-44A2-  87ED-368025AA2D65  3BB7EAAE-3B59-46C1  -A3C6-84ABF7547ABB  CountryID  B6319512-DBE-145A3  -98E3-1A2234EAFF2E  ID  0F003600-A8E9-493C-  B82E-3814837D3A75  58CAC132-2093-4B2D  -B11547109201D7B9  ORGUnitID  D302DC85-C7D4-43E1  -9CB9-FD7B7ECD48C4  ID  91546925-F60D-4042-  ABCA-5DBA3476F55F  388564A3-2288-4DC9  -A5CF-BE38040DE63E  PositionID  23D3DF39-B5EE-4FBB  -975D-84BD0047733C  ID

本步骤中,通过上述三个表HR_Base_Model、HR_Base_Table、HR_Base_Reference即表示出了各数据表实体之间的关联关系。
步骤304,根据所述业务模型及SQL语句生成规则生成SQL语句。
通过将业务模型中三个表的描述信息根据SQL语句生成规则套入SQL语句生成模板中即可生成SQL语句,生成的语句用于对业务模型及业务对象等进行操作。
本步骤中,也还可以对SQL语句的种类进行区分,根据选择的SQL语句的种类生成对应的SQL语句。该种类可以包括构建业务模型描述SQL和构建业务数据SQL。其中,构建业务模型描述SQL可以包括业务模型(新增、修改、删除)SQL等。构建业务数据SQL可以包括:业务对象(取数、查询过滤)SQL,业务对象主表数据(新增、修改、删除、级联删除)SQL、业务对象从表(新增、修改、删除)SQL等。举例说明本实施例中生成的SQL语句:
职员业务模型,数据查询SQL:
Select
HR_Employee.ID,HR_Employee.Code,HR_Employee.Name,HR_Employee.Sex,ORG_Unit.Code as OrgUnitCode,ORG_Unit.Name as OrgUnitName,ORG_Position.Code as PositionCode,ORG_Position.Name asPositionName,
HR_WorldStatus.Name as CountryName
From
HR_Employee Inner join ORG_Unit onHR_Employee.ORGUnitID=ORG_Unit.ID
Inner join ORG_Position onHR_Employee.PositionID=ORG_Position.ID
Inner join HR_WorldStatus onHR_Employee.CountryID=HR_WorldStatus.ID
本实施例实现了自动快速,大批量的生成对业务模型操作的SQL语句,提高了SQL语句的编写效率。
以上对生成SQL语句的方法进行了描述,下面对该方法对应的系统进行介绍。
参照图4,为本发明实施例一种SQL语句生成系统的结构示意图。
该系统可以包括设置单元401、填充单元402和生成单元403。
设置单元401,用于设置字段及表的描述表项。填充单元402,用于填充与所述描述表项对应的描述信息,生成数据字典。
生成单元403,用于根据所述数据字典及结构化查询语言SQL语句生成规则生成SQL语句。
设置单元401设置字段的描述表项和表的描述表项,以统一对数据库实体的描述,然后由填充单元402填充与设置单元401设置的描述表项对应的描述信息,从而生成数据字典。再由生成单元403根据该数据字典及SQL语句生成规则生成SQL语句。其中,设置单元401设置的字段和表的描述表项中还可以包括控制信息描述表项,对应的,填充单元402填充的描述信息也可以包括控制信息,生成的SQL语句符合该控制信息的要求。
本实施例中通过上述设置单元401设置统一的描述表项,然后由填充单元402填充入描述信息,为实现该发明目的提供了可能,然后由生成单元403根据SQL语句生成规则,应用数据字典的信息套入SQL语句的模板从而实现了自动快速,大批量的生成SQL语句,提高了SQL语句的编写效率。
在本发明的另一实施例中,填充单元401可以根据数据实体录入与所述描述表项对应的表实体描述信息和字段实体描述信息,生成数据字典。填充单元401也可以通过导入外部数据源的描述信息并与所述描述表项对应,生成数据字典。
参照图5,为本发明实施例另一种SQL语句生成系统的结构示意图。
本实施例中,该系统除了包括设置单元501、填充单元502和生成单元503之外,还可以包括选择单元504和构建单元505。
其中,设置单元501和填充单元502与前述实施例类似,此处不再赘述。
选择单元504,用于在所述数据字典中选择数据库实体表。
构建单元505,用于依据所述数据实体表之间的关系构建业务模型。
生成单元503在本实施例中具体用于根据所述业务模型及SQL语句生成规则生成SQL语句。
在填充单元502生成数据字典后,进一步由选择单元504和构建单元505构建业务模型,再由生成单元503生成对该业务模型操作的SQL语句。
本实施例实现了自动快速,大批量的生成对业务模型操作的SQL语句,提高了SQL语句的编写效率。
以上系统中各单元的具体实现过程请参照前述方法实施例中的相应描述,此处不再赘述。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。

一种SQL语句生成方法及系统.pdf_第1页
第1页 / 共23页
一种SQL语句生成方法及系统.pdf_第2页
第2页 / 共23页
一种SQL语句生成方法及系统.pdf_第3页
第3页 / 共23页
点击查看更多>>
资源描述

《一种SQL语句生成方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种SQL语句生成方法及系统.pdf(23页珍藏版)》请在专利查询网上搜索。

本发明提供一种SQL语句生成方法及系统。一种SQL语句生成方法,包括:设置字段及表的描述表项;填充与所述描述表项对应的描述信息,生成数据字典;根据所述数据字典及结构化查询语言SQL语句生成规则生成SQL语句。本发明实施例中,通过首先设置统一的描述表项,然后填充入描述信息,为实现该发明目的提供了可能,然后根据SQL语句生成规则,应用数据字典的信息套入SQL语句的模板从而实现了自动快速,大批量的生成S。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1