CN101673287A - 一种sql语句生成方法及系统 - Google Patents
一种sql语句生成方法及系统 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000008676 import Effects 0.000 claims description 5
- 238000013523 data management Methods 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 3
- 230000008520 organization Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 241001122767 Theaceae Species 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种SQL语句生成方法及系统。一种SQL语句生成方法,包括:设置字段及表的描述表项;填充与所述描述表项对应的描述信息,生成数据字典;根据所述数据字典及结构化查询语言SQL语句生成规则生成SQL语句。本发明实施例中,通过首先设置统一的描述表项,然后填充入描述信息,为实现该发明目的提供了可能,然后根据SQL语句生成规则,应用数据字典的信息套入SQL语句的模板从而实现了自动快速,大批量的生成SQL语句,提高了SQL语句的编写效率。
Description
技术领域
本发明涉数据库处理技术领域,尤其涉及一种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-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语句。
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)
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 | 成都卓码数智数字科技有限公司 | 一种数字化转型中通过界面操作定义业务数据模型的方法 |
-
2009
- 2009-10-16 CN CN200910178335A patent/CN101673287A/zh active Pending
Cited By (32)
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 |