CN101673287A - 一种sql语句生成方法及系统 - Google Patents

一种sql语句生成方法及系统 Download PDF

Info

Publication number
CN101673287A
CN101673287A CN200910178335A CN200910178335A CN101673287A CN 101673287 A CN101673287 A CN 101673287A CN 200910178335 A CN200910178335 A CN 200910178335A CN 200910178335 A CN200910178335 A CN 200910178335A CN 101673287 A CN101673287 A CN 101673287A
Authority
CN
China
Prior art keywords
description
sql
table entry
sql statement
generating
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
CN200910178335A
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.)
Kingdee Software China Co Ltd
Original Assignee
Kingdee Software China Co Ltd
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 Kingdee Software China Co Ltd filed Critical Kingdee Software China Co Ltd
Priority to CN200910178335A priority Critical patent/CN101673287A/zh
Publication of CN101673287A publication Critical patent/CN101673287A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

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

Description

一种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:
Figure G2009101783351D00051
步骤202,设置表描述表项,生成HRMS_Table(表信息描述表)。
该表描述表项用于描述数据库实体表信息。如表2所示为HRMS_Table表,该HRMS_Table表中包括表信息描述表项,如表名称,表物理名称、表类别、是否为视图、是否内置表、主键字段设置、表选设置、表类型设置等,也还可以包括表的控制信息描述表项,如是否允许新增字段、是否允许修改字段、是否为锁定表、是否为同构表等。以上步骤201和步骤202的顺序可以根据需要进行调整。
表2.HRMS_Table:
Figure G2009101783351D00061
步骤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-lityType 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语句的编写效率。
以上系统中各单元的具体实现过程请参照前述方法实施例中的相应描述,此处不再赘述。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。

Claims (11)

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语句。
CN200910178335A 2009-10-16 2009-10-16 一种sql语句生成方法及系统 Pending CN101673287A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910178335A CN101673287A (zh) 2009-10-16 2009-10-16 一种sql语句生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910178335A CN101673287A (zh) 2009-10-16 2009-10-16 一种sql语句生成方法及系统

Publications (1)

Publication Number Publication Date
CN101673287A true CN101673287A (zh) 2010-03-17

Family

ID=42020510

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910178335A Pending CN101673287A (zh) 2009-10-16 2009-10-16 一种sql语句生成方法及系统

Country Status (1)

Country Link
CN (1) CN101673287A (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467547A (zh) * 2010-11-16 2012-05-23 金蝶软件(中国)有限公司 历史数据存储方法及装置
CN102541867A (zh) * 2010-12-15 2012-07-04 金蝶软件(中国)有限公司 数据字典生成方法及系统
CN102541521A (zh) * 2010-12-17 2012-07-04 中国银联股份有限公司 基于结构化查询语言的操作指令自动生成装置及方法
CN103488694A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 业务数据查询装置和业务数据查询方法
CN104809254A (zh) * 2015-05-19 2015-07-29 郑州悉知信息技术有限公司 一种数据查询方法及装置
CN104899205A (zh) * 2014-03-05 2015-09-09 张航 基于星型结构业务模型的动态搜索框架
CN106815353A (zh) * 2017-01-20 2017-06-09 星环信息科技(上海)有限公司 一种数据查询的方法及设备
CN107168700A (zh) * 2017-04-30 2017-09-15 王栋 基于sql‑select驱动的全自动表单web后台管理系统的基础开发框架
WO2017162026A1 (zh) * 2016-03-21 2017-09-28 阿里巴巴集团控股有限公司 生成描述信息的方法及装置
CN107506442A (zh) * 2017-08-24 2017-12-22 中国银行股份有限公司 一种模型的建模方法及装置
CN107562955A (zh) * 2017-09-30 2018-01-09 北京酷我科技有限公司 一种sql语句的快速生成方法
CN107644097A (zh) * 2017-09-29 2018-01-30 北京酷我科技有限公司 一种slq语句生成方法
WO2019000698A1 (zh) * 2017-06-25 2019-01-03 平安科技(深圳)有限公司 生成sql语句的方法、系统、电子装置及可读存储介质
CN109492057A (zh) * 2018-10-26 2019-03-19 深圳点猫科技有限公司 一种教育系统的用于Hive离线计算方法及电子设备
CN109977175A (zh) * 2019-03-20 2019-07-05 跬云(上海)信息科技有限公司 数据配置查询方法和装置
CN110309507A (zh) * 2019-05-30 2019-10-08 深圳壹账通智能科技有限公司 测试语料生成方法、装置、计算机设备和存储介质
CN110750969A (zh) * 2019-09-29 2020-02-04 北京东软望海科技有限公司 一种生成报表的方法及装置
CN110968591A (zh) * 2018-09-30 2020-04-07 北京国双科技有限公司 查询语句的生成方法、装置、存储介质及处理器
CN111143329A (zh) * 2019-12-27 2020-05-12 中国银联股份有限公司 一种数据处理方法及装置
WO2020232896A1 (zh) * 2019-05-23 2020-11-26 平安科技(深圳)有限公司 数据字典生成的方法、装置、电子设备和存储介质
CN112597228A (zh) * 2020-12-26 2021-04-02 中国农业银行股份有限公司 一种文件处理方法及系统
CN112925794A (zh) * 2021-04-02 2021-06-08 中国人民解放军国防科技大学 基于桥接填充的复杂多表sql生成方法和装置
CN113568696A (zh) * 2021-07-29 2021-10-29 成都卓码数智数字科技有限公司 一种数字化转型中通过界面操作定义业务数据模型的方法

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467547B (zh) * 2010-11-16 2013-10-09 金蝶软件(中国)有限公司 历史数据存储方法及装置
CN102467547A (zh) * 2010-11-16 2012-05-23 金蝶软件(中国)有限公司 历史数据存储方法及装置
CN102541867A (zh) * 2010-12-15 2012-07-04 金蝶软件(中国)有限公司 数据字典生成方法及系统
CN102541521A (zh) * 2010-12-17 2012-07-04 中国银联股份有限公司 基于结构化查询语言的操作指令自动生成装置及方法
CN102541521B (zh) * 2010-12-17 2015-03-25 中国银联股份有限公司 基于结构化查询语言的操作指令自动生成装置及方法
CN103488694A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 业务数据查询装置和业务数据查询方法
CN104899205A (zh) * 2014-03-05 2015-09-09 张航 基于星型结构业务模型的动态搜索框架
CN104809254A (zh) * 2015-05-19 2015-07-29 郑州悉知信息技术有限公司 一种数据查询方法及装置
WO2017162026A1 (zh) * 2016-03-21 2017-09-28 阿里巴巴集团控股有限公司 生成描述信息的方法及装置
CN107220251A (zh) * 2016-03-21 2017-09-29 阿里巴巴集团控股有限公司 生成描述信息的方法及装置
CN106815353A (zh) * 2017-01-20 2017-06-09 星环信息科技(上海)有限公司 一种数据查询的方法及设备
CN107168700A (zh) * 2017-04-30 2017-09-15 王栋 基于sql‑select驱动的全自动表单web后台管理系统的基础开发框架
CN107168700B (zh) * 2017-04-30 2020-06-30 王栋 基于sql-select驱动的全自动表单web后台管理系统的基础开发框架
WO2019000698A1 (zh) * 2017-06-25 2019-01-03 平安科技(深圳)有限公司 生成sql语句的方法、系统、电子装置及可读存储介质
CN107506442A (zh) * 2017-08-24 2017-12-22 中国银行股份有限公司 一种模型的建模方法及装置
CN107506442B (zh) * 2017-08-24 2020-09-29 中国银行股份有限公司 一种模型的建模方法及装置
CN107644097A (zh) * 2017-09-29 2018-01-30 北京酷我科技有限公司 一种slq语句生成方法
CN107562955A (zh) * 2017-09-30 2018-01-09 北京酷我科技有限公司 一种sql语句的快速生成方法
CN110968591A (zh) * 2018-09-30 2020-04-07 北京国双科技有限公司 查询语句的生成方法、装置、存储介质及处理器
CN109492057A (zh) * 2018-10-26 2019-03-19 深圳点猫科技有限公司 一种教育系统的用于Hive离线计算方法及电子设备
CN109977175A (zh) * 2019-03-20 2019-07-05 跬云(上海)信息科技有限公司 数据配置查询方法和装置
US11281698B2 (en) 2019-03-20 2022-03-22 Kuyun (Shanghai) Information Technology Co., Ltd. Data configuration query method and device
WO2020232896A1 (zh) * 2019-05-23 2020-11-26 平安科技(深圳)有限公司 数据字典生成的方法、装置、电子设备和存储介质
CN110309507A (zh) * 2019-05-30 2019-10-08 深圳壹账通智能科技有限公司 测试语料生成方法、装置、计算机设备和存储介质
CN110750969A (zh) * 2019-09-29 2020-02-04 北京东软望海科技有限公司 一种生成报表的方法及装置
CN110750969B (zh) * 2019-09-29 2023-09-01 望海康信(北京)科技股份公司 一种生成报表的方法及装置
CN111143329A (zh) * 2019-12-27 2020-05-12 中国银联股份有限公司 一种数据处理方法及装置
CN111143329B (zh) * 2019-12-27 2024-02-13 中国银联股份有限公司 一种数据处理方法及装置
CN112597228A (zh) * 2020-12-26 2021-04-02 中国农业银行股份有限公司 一种文件处理方法及系统
CN112597228B (zh) * 2020-12-26 2024-06-07 中国农业银行股份有限公司 一种文件处理方法及系统
CN112925794A (zh) * 2021-04-02 2021-06-08 中国人民解放军国防科技大学 基于桥接填充的复杂多表sql生成方法和装置
CN113568696A (zh) * 2021-07-29 2021-10-29 成都卓码数智数字科技有限公司 一种数字化转型中通过界面操作定义业务数据模型的方法

Similar Documents

Publication Publication Date Title
CN101673287A (zh) 一种sql语句生成方法及系统
US20220179876A1 (en) Metadata hub for metadata models of database objects
CN100468396C (zh) 用于任意数据模型的映射体系结构
Chen et al. An overview of the object protocol model (OPM) and the OPM data management tools
CN105849726B (zh) 用于高效地支持通过分层标记数据的即席查询的通用索引
US6374252B1 (en) Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
US7630993B2 (en) Generating database schemas for relational and markup language data from a conceptual model
US9396284B2 (en) Method and system for implementing efficient updatable relational views over XML data
US8478760B2 (en) Techniques of efficient query over text, image, audio, video and other domain specific data in XML using XML table index with integration of text index and other domain specific indexes
KR102229010B1 (ko) 데이터를 모델링하기 위한 시스템 및 방법
WO2020135613A1 (zh) 数据查询处理方法、装置及系统、计算机可读存储介质
US9785725B2 (en) Method and system for visualizing relational data as RDF graphs with interactive response time
US8341512B2 (en) Method for capturing design-time and run-time formulas associated with a cell
CN106991276B (zh) 一种基于openEHR模板的数据接口动态生成方法
US9147040B2 (en) Point-in-time query system
KR20060045622A (ko) 컴퓨터화된 재무 시스템의 추출, 변환 및 로딩 설계자 모듈
EP2668598A1 (en) Analytical data processing
AU2012327168B2 (en) Amethod and structure for managing multiple electronic forms and their records using a static database
US20100235344A1 (en) Mechanism for utilizing partitioning pruning techniques for xml indexes
CA2526045A1 (en) Complex data access
JP2006524376A (ja) 汎用データベーススキーマ
Keim et al. Object-oriented querying of existing relational databases
US20180357297A1 (en) Rdb system
CN111752546A (zh) 一种基于Excel的数据库对象设计管理平台、系统及方法
Brahmia et al. Schema evolution in conventional and emerging databases

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20100317