数据表创建方法、装置、设备及存储介质与流程

专利2022-06-30  71

本发明涉及数据库
技术领域
:,尤其涉及一种数据表创建方法、装置、设备及存储介质。
背景技术
::数据定义语言(datadefinitionlanguage,ddl)是结构化查询语言(structuredquerylanguage,sql)语言集中负责数据结构定义与数据库对象定义的语言。数据库对象包括:表、索引、视图、图表、缺省值、规则、触发器、用户和函数等。目前,在创建表时生成创建表对应的ddl语句时,需要通过商业的数据库建模工具来完成或者通过手工编写ddl脚本。利用商业的数据库建模工具生成创建表对应的ddl语句需要购买较昂贵的建模工具;通过手工编写ddl脚本错误较多且不便于维护。另外,每创建一个数据表都需要编写和执行ddl语句中的createtable语句,创建数据表的效率较低。技术实现要素:本发明实施例提供一种数据表创建方法、装置、设备及存储介质,能够提高数据表创建效率。一方面,本发明实施例提供了一种数据表创建方法,方法包括:获得待创建的多个数据表中相同类型的属性字段;利用数据类型定义语句和表模板定义语句,生成针对属性字段的第一定义语句;利用数据表定义语句和数据类型定义语句,生成针对多个数据表中不同类型的属性字段的第二定义语句;执行第一定义语句和第二定义语句,以创建多个数据表。在本发明的一个实施例中,本发明实施例提供的数据表创建方法还包括:获得多个数据表之间的关联关系;利用数据表定义语句和数据类型定义语句,生成针对多个数据表中不同类型的属性字段的第二定义语句,包括:利用数据表定义语句、数据类型定义语句、表间关联关系定义语句以及关联关系,生成针对多个数据表中不同类型的属性字段的第二定义语句。在本发明的一个实施例中,本发明实施例提供的数据表创建方法还包括:定义数据类型定义语句、表模板定义语句和数据表定义语句。在本发明的一个实施例中,本发明实施例提供的数据表创建方法还包括:定义表间关联关系定义语句。另一方面,本发明实施例提供了一种数据表创建装置,装置包括:第一获得模块,用于获得待创建的多个数据表中相同类型的属性字段;第一生成模块,用于利用数据类型定义语句和表模板定义语句,生成针对属性字段的第一定义语句;第二生成模块,用于利用数据表定义语句和数据类型定义语句,生成针对多个数据表中不同类型的属性字段的第二定义语句;执行模块,用于执行第一定义语句和第二定义语句,以创建多个数据表。在本发明的一个实施例中,本发明实施例提供的数据表创建装置还包括:第二获得模块,用于获得多个数据表之间的关联关系;第二生成模块,具体用于:利用数据表定义语句、数据类型定义语句、表间关联关系定义语句以及关联关系,生成针对多个数据表中不同类型的属性字段的第二定义语句。在本发明的一个实施例中,本发明实施例提供的数据表创建装置还包括:第一定义模块,用于定义数据类型定义语句、表模板定义语句和数据表定义语句。在本发明的一个实施例中,本发明实施例提供的数据表创建装置还包括:第二定义模块,用于定义表间关联关系定义语句。再一方面,本发明实施例提供一种数据表创建设备,设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序;处理器执行计算机程序时实现本发明实施例提供的数据表创建方法。再一方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现本发明实施例提供的数据表创建方法。本发明实施例的数据表创建方法、装置、设备及存储介质,能够同时创建多个数据表,能够提高数据表创建效率。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了本发明实施例提供的数据表创建方法的流程示意图;图2示出了本发明实施例提供的数据表创建装置的结构示意图;图3示出了能够实现根据本发明实施例的数据表创建方法及装置的计算设备的示例性硬件架构的结构图。具体实施方式下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。图1示出了本发明实施例提供的数据表创建方法的流程示意图。数据表创建方法可以包括:s101:获得待创建的多个数据表中相同类型的属性字段。s102:利用数据类型定义语句和表模板定义语句,生成针对相同类型的属性字段的第一定义语句。s103:利用数据表定义语句和数据类型定义语句,生成针对多个数据表中不同类型的属性字段的第二定义语句。s104:执行第一定义语句和第二定义语句,以创建多个数据表。标准ddl语句在sql中定义表主要有四个要素:表名、表所属用户、表的属性字段和约束条件。本发明实施例中的相同类型的属性字段指数据类型、缺省值(也叫默认值)和约束条件均相同的属性字段。可以理解的是,在利用数据类型定义语句和表模板定义语句,生成针对属性字段的第一定义语句和利用数据表定义语句和数据类型定义语句,生成针对多个数据表中不同类型的属性字段的第二定义语句之前,需要先对数据类型定义语句、表模板定义语句和数据表定义语句进行定义。基于此,本发明实施例提供的数据表创建方法还可以包括:定义数据类型定义语句、表模板定义语句和数据表定义语句。在本发明的一个实施例中,可以通过如下语法定义数据类型定义语句:typenamed_typetype_definetype_define:data_type[length][default{default_value}][required|optional|unique][key|index]其中,type用于定义数据类型,named_type表示定义的数据类型的名称,type_define为类型定义。data_type为基础数据类型,包括:字符类型、数字类型、日期类型、其他类型。length为named_type的长度。default{default_value}用于设置named_type的默认值。required为必选项,对应于ddl中的notnull字段级约束条件。optional为可选项,对应于ddl中无约束条件,允许为空。unique表示named_type的值唯一,对应于ddl中的unique字段级唯一性约束。key为主键,对应于ddl中的primarykey字段级约束条件。index为索引,对应于ddl中的字段上创建索引。在本发明的一个实施例中,可以通过如下语法定义表模板定义语句:templatetemplate_name[(parameter[,parameter…])]{[${parameter}_field_name[,field_name…]{&named_type|type_define}{&&named_type}][…]}其中,template用于定义数据类型,template_name表示定义的表模板的名称,parameter为参数,${parameter}用于将使用表模板时传入的参数辅助定义表字段名称,field_name用于指定字段名称,&named_type用于把字段的类型直接引用为已定义的数据类型,&&named_type用来引用已定义的数据类型及名称。在本发明的一个实施例中,可以通过如下语法定义数据表定义语句:table{table_name[,table_name…]}[template{template_name[([parameter[,parameter…]])]}]{[{&&named_type|field_name[,field_name…]{&named_type|type_define}}[…]]}其中,table用于定义表,table_name表示表的名称,template用于引用表模板,template_name用于指定所引用的表模板的名称,&named_type用于把字段的类型直接引用为已定义的数据类型,&&named_type用来引用已定义的数据类型及名称,field_name表示表的字段名称。示例性的,下面以创建两个表:用户表和角色表为例进行说明。其中,用户表包括字段:用户id,用户名称,用户全名,密码,创建时间,最近更新时间,失效时间,用户状态和状态时间。约束条件为:1、用户id,用户名称,密码,创建时间,最近更新时间,用户状态和状态时间不为空。2、用户id为主键。3、创建时间、最近更新时间和状态时间的缺省值为当前时间。4、失效时间的缺省值为空。5、用户状态的缺省值为“激活”,且值只能是“激活”、“锁定”、“禁用”和“失效”中的任意一个。角色表包括字段:角色id,角色名称,创建时间和最近更新时间。约束条件为:1、角色id,角色名称,创建时间和最近更新时间不为空。2、创建时间和最近更新时间的缺省值为当前时间。3、角色id为主键。获得用户表和角色表相同类型的属性字段有id、名称、创建时间和最近更新时间。利用数据类型定义语句和表模板定义语句,生成针对相同类型的属性字段的第一定义语句如下:其中,varchar表示数据类型为可变长字符型,created为创建时间,timestamp表示数据类型为时间型,last_updated为最近更新时间,defaultnow()表示缺省值为当前时间。利用数据表定义语句和数据类型定义语句,生成针对多个数据表中不同类型的属性字段的第二定义语句如下:其中,users表示用户表,user和role分别作为参数传入表模板id_name用于辅助定义字段名称,full_name表示用户全名,password表示密码,expired表示失效时间,status表示用户状态,emum表示数据类型为枚举型,active表示激活,locked表示锁定,deprecated表示禁用,expried表示失效,default标识字段有默认值,status_time表示状态时间,roles表示角色表。通过上述方式,可以同时创建多个数据表,能够提高数据表创建效率。在本发明的一个实施例中,数据表间可能存在关联关系。可以理解的是,数据表间的关联关系主要有:一对一关联关系,一对多关联关系和多对多关联关系。基于此,本发明实施例还可以获得多个数据表之间的关联关系;利用数据表定义语句、数据类型定义语句、表间关联关系定义语句以及关联关系,生成针对多个数据表中不同类型的属性字段的第二定义语句。可以理解的是,在利用数据表定义语句、数据类型定义语句、表间关联关系定义语句以及关联关系,生成针对多个数据表中不同类型的属性字段的第二定义语句之前,需要先对数据表定义语句、数据类型定义语句、表间关联关系定义语句进行定义。定义数据表定义语句和数据类型定义语句可参考上述部分,本发明实施例在此不对其进行赘述。在本发明的一个实施例中,可以通过如下语法定义表间关联关系定义语句:一对一关联关系:has_onetable_name[as{field_name[,field_name...]}]{required|optional|unique}[exactly]一对多关联关系:has_manytable_name[as{field_name[,field_name...]}]{required|optional|unique}[exactly]多对多关联关系:crosstable_name[with{field_name[,field_name...]}][by{field_name[,field_name...]}][throughtable_name]其中,has_one表示一对一关联关系,has_many表示一对多关联关系,cross表示多对多关联关系,table_name表示表名,as和with—by用于标识存在关联关系的字段,required用于标识关联字段不允许为空,optional用于标识关联字段允许为空,unique用于标识关联字段值唯一,exactly表示既是主键又是外键,through用于标识存在关联关系的表。示例性的,下面以创建人物表和员工表为例进行说明。其中,人物表包括字段:人物id和人物姓名。约束条件为:1、人物id和人物姓名不为空。2、人物id为主键。员工表包括字段有:员工id和员工姓名。约束条件为:1、员工id和员工姓名不为空。2、员工id为主键。3、员工id为外键,与人物表的人物id关联。即人物表和员工表存在关联关系,且一个员工只能来自于人物表中的唯一一条记录,也就说是,人物表和员工表存在的关联关系为一对一关联关系。获得人物表和员工表相同类型的属性字段有id和姓名。利用数据类型定义语句和表模板定义语句,生成针对相同类型的属性字段的第一定义语句如下:获得人物表和员工表的关联关系为一对一关联关系。利用数据表定义语句、数据类型定义语句、表间关联关系定义语句以及关联关系,生成针对多个数据表中不同类型的属性字段的第二定义语句如下:tablepersonstemplateid_name(‘person’){}tableworkerstemplateid_name(‘worker’){has_onepersonsasworker_idexactly}其中,persons表示人物表,person和worker为参数,workers表示员工表。再示例性的,下面以创建人物表和主机表为例进行说明。其中,人物表包括字段:人物id和人物姓名。约束条件为:1、人物id和人物姓名不为空。2、人物id为主键。主机表包括字段:主机id、操作系统和用户id。约束条件为:1、主机id,操作系统,用户id不为空。2、主机id为主键。3、用户id为外键,与人物表的人物id关联。即人物表和主机表存在关联关系,且一个用户可以使用多个主机,也就说是,人物表和主机表存在的关联关系为一对多关联关系。获得人物表和主机表相同类型的属性字段有id。利用数据类型定义语句和表模板定义语句,生成针对相同类型的属性字段的第一定义语句如下:获得人物表和主机表的关联关系为一对多关联关系。利用数据表定义语句、数据类型定义语句、表间关联关系定义语句以及关联关系,生成针对多个数据表中不同类型的属性字段的第二定义语句如下:其中,persons表示人物表,computer和person为参数,computers表示主机表。再示例性的,下面以创建人物表、角色表和人物-角色表为例进行说明。其中,人物表包括字段:人物id和人物姓名。约束条件为:1、人物id和人物姓名不为空。2、人物id为主键。角色表包括字段:角色id和角色名称。约束条件为:1、角色id和角色名称不为空。2、角色id为主键。人物-角色表包括字段有:人物id和角色id。约束条件为:1、人物id和角色id不为空。2、人物id和角色id为主键。3、人物id和角色id为外键。人物id与人物表的人物id关联,角色id与角色表中的角色id关联。即人物表和角色表均与人物-角色表存在关联关系,且一个人物可以扮演多个角色,一个角色可以由多个人物扮演,也就说是,人物表和角色表存在的关联关系为多对多关联关系。可以从其中任何一个表指定到另一个表的多对多关联,通过cross实现人物-角色表的定义和人物表、角色表的外键约束条件。获得人物表和角色表相同类型的属性字段有id和名称。利用数据类型定义语句和表模板定义语句,生成针对相同类型的属性字段的第一定义语句如下:获得人物表和角色表的关联关系为多对多关联关系。利用数据表定义语句、数据类型定义语句、表间关联关系定义语句以及关联关系,生成针对多个数据表中不同类型的属性字段的第二定义语句如下:tablerolestemplateid_name('role'){}tablepersonstemplateid_name('person'){crossroleswithperson_idbyrole_idthroughperson_roles}tableperson_roles{person_id&idrole_id&id}其中,roles表示人物表,role和person为参数,persons表示主机表,person-role表示人物-角色表。通过本发明实施例提供的数据表创建方法,能够同时创建多个数据表,能够提高数据表创建效率。需要说明的是,上述以创建用户表、角色表、人物表、员工表、主机表和人物-角色表格表为例进行说明,仅为本发明的一具体实例,并不构成对本发明的限定。本发明实施例的数据表创建方法,能够同时创建多个数据表,能够提高数据表创建效率。与上述的方法实施例相对应,本发明实施例还提供一种数据表创建装置。如图2所示,图2示出了本发明实施例提供的数据表创建装置的结构示意图。数据表创建装置可以包括:第一获得模块201,用于获得待创建的多个数据表中相同类型的属性字段。第一生成模块202,用于利用数据类型定义语句和表模板定义语句,生成针对相同类型的属性字段的第一定义语句。第二生成模块203,用于利用数据表定义语句和数据类型定义语句,生成针对多个数据表中不同类型的属性字段的第二定义语句。执行模块204,用于执行第一定义语句和第二定义语句,以创建多个数据表。在本发明的一个实施例中,本发明实施例提供的数据表创建装置还可以包括:第二获得模块,用于获得多个数据表之间的关联关系;本发明实施例的第二生成模块203,具体可以用于:利用数据表定义语句、数据类型定义语句、表间关联关系定义语句以及关联关系,生成针对多个数据表中不同类型的属性字段的第二定义语句。在本发明的一个实施例中,本发明实施例提供的数据表创建装置还可以包括:第一定义模块,用于定义数据类型定义语句、表模板定义语句和数据表定义语句。在本发明的一个实施例中,本发明实施例提供的数据表创建装置还可以包括:第二定义模块,用于定义表间关联关系定义语句。本发明实施例的数据表创建装置,能够同时创建多个数据表,能够提高数据表创建效率。图3示出了能够实现根据本发明实施例的数据表创建方法及装置的计算设备的示例性硬件架构的结构图。如图3所示,计算设备300包括输入设备301、输入接口302、中央处理器303、存储器304、输出接口305、以及输出设备306。其中,输入接口302、中央处理器303、存储器25304、以及输出接口305通过总线310相互连接,输入设备301和输出设备306分别通过输入接口302和输出接口305与总线310连接,进而与计算设备300的其他组件连接。具体地,输入设备301接收来自外部的输入信息,并通过输入接口302将输入信息传送到中央处理器303;中央处理器303基于存储器304中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器304中,然后通过输出接口305将输出信息传送到输出设备306;输出设备306将输出信息输出到计算设备300的外部供用户使用。也就是说,图3所示的计算设备也可以被实现为数据表创建设备,该数据表创建设备可以包括:存储有计算机可执行指令的存储器;以及处理器,该处理器在执行计算机可执行指令时可以实现结合图1和图2描述的数据表创建方法和装置。本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的数据表创建方法。需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
技术特征:

1.一种数据表创建方法,其特征在于,所述方法包括:

获得待创建的多个数据表中相同类型的属性字段;

利用数据类型定义语句和表模板定义语句,生成针对所述属性字段的第一定义语句;

利用数据表定义语句和所述数据类型定义语句,生成针对所述多个数据表中不同类型的属性字段的第二定义语句;

执行所述第一定义语句和所述第二定义语句,以创建所述多个数据表。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

获得所述多个数据表之间的关联关系;

所述利用数据表定义语句和所述数据类型定义语句,生成针对所述多个数据表中不同类型的属性字段的第二定义语句,包括:

利用所述数据表定义语句、所述数据类型定义语句、表间关联关系定义语句以及所述关联关系,生成针对所述多个数据表中不同类型的属性字段的第二定义语句。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

定义所述数据类型定义语句、所述表模板定义语句和所述数据表定义语句。

4.根据权利要求2所述的方法,其特征在于,所述方法还包括:

定义所述表间关联关系定义语句。

5.一种数据表创建装置,其特征在于,所述装置包括:

第一获得模块,用于获得待创建的多个数据表中相同类型的属性字段;

第一生成模块,用于利用数据类型定义语句和表模板定义语句,生成针对所述属性字段的第一定义语句;

第二生成模块,用于利用数据表定义语句和所述数据类型定义语句,生成针对所述多个数据表中不同类型的属性字段的第二定义语句;

执行模块,用于执行所述第一定义语句和所述第二定义语句,以创建所述多个数据表。

6.根据权利要求5所述的装置,其特征在于,所述装置还包括:

第二获得模块,用于获得所述多个数据表之间的关联关系;

所述第二生成模块,具体用于:

利用所述数据表定义语句、所述数据类型定义语句、表间关联关系定义语句以及所述关联关系,生成针对所述多个数据表中不同类型的属性字段的第二定义语句。

7.根据权利要求5所述的装置,其特征在于,所述装置还包括:

第一定义模块,用于定义所述数据类型定义语句、所述表模板定义语句和所述数据表定义语句。

8.根据权利要求6所述的装置,其特征在于,所述装置还包括:

第二定义模块,用于定义所述表间关联关系定义语句。

9.一种数据表创建设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;

所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述的数据表创建方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的数据表创建方法。

技术总结
本发明实施例公开了一种数据表创建方法、装置、设备及存储介质。该方法包括:获得待创建的多个数据表中相同类型的属性字段;利用数据类型定义语句和表模板定义语句,生成针对属性字段的第一定义语句;利用数据表定义语句和数据类型定义语句,生成针对多个数据表中不同类型的属性字段的第二定义语句;执行第一定义语句和第二定义语句,以创建多个数据表。本发明实施例的数据表创建方法、装置、设备及存储介质,能够同时创建多个数据表,能够提高数据表创建效率。

技术研发人员:朱佳慧
受保护的技术使用者:中国移动通信集团四川有限公司;中国移动通信集团有限公司
技术研发日:2018.11.29
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-58519.html

最新回复(0)