生成数据库脚本的方法、装置、存储介质及计算机设备与流程

文档序号:20113101发布日期:2020-03-17 19:26阅读:92来源:国知局
本发明涉及信息
技术领域
:,尤其是涉及一种生成数据库脚本的方法、装置、存储介质及计算机设备。
背景技术
::数据库本身可视为电子化的文件柜-存储电子文件的处所,用户可以对文件中的数据进行增加、修改、删除和查询等操作,在现在这个大数据时代,随着对数据库的操作频率越来越高,对sql脚本的准确率、性能要求也越来越高,针对增加操作、修改操作和删除操作的开发较为简单,而查询操作的开发较为复杂。目前,针对简单的查询语句,开发人员能够在短时间内完成编码,而针对复杂的查询语句,需要结合表结构和业务逻辑查询出想要的结果,然而,结合表结构和业务逻辑的查询,会增加开发人员的编码难度,开发人员很难在短时间内写出高效的数据库脚本,此外,由于开发人员的技术层次各不相同,每个开发人员编写的脚本都不一致,需要人工提取最优的脚本为项目所用,由此导致项目开发效率低下,降低了项目开发的准确率,对数据库的操作不够灵活。技术实现要素:本发明提供了一种生成数据库脚本的方法、装置、存储介质及计算机设备,主要在于能够提高数据库脚本的开发效率和准确率,降低了开发人员的工作量,确保不同开发人员开发数据库脚本的一致性。根据本发明的第一个方面,提供一种生成数据库脚本的方法,包括:获取待生成数据库脚本的查询语句;利用预设分词算法对所述查询语句进行分词处理,得到所述查询语句对应的各个关键词;根据所述查询语句对应的各个关键词,确定所述各个关键词对应的结构化查询语句,并根据所述各个关键词对应的结构化查询语句生成所述查询语句对应的数据库脚本。根据本发明的第二个方面,提供一种生成数据库脚本的装置,包括:获取单元,用于获取待生成数据库脚本的查询语句;分词单元,用于利用预设分词算法对所述查询语句进行分词处理,得到所述查询语句对应的各个关键词;生成单元,用于根据所述查询语句对应的各个关键词,确定所述各个关键词对应的结构化查询语句,并根据所述各个关键词对应的结构化查询语句生成所述查询语句对应的数据库脚本。根据本发明的第三个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:获取待生成数据库脚本的查询语句;利用预设分词算法对所述查询语句进行分词处理,得到所述查询语句对应的各个关键词;根据所述查询语句对应的各个关键词,确定所述各个关键词对应的结构化查询语句,并根据所述各个关键词对应的结构化查询语句生成所述查询语句对应的数据库脚本。根据本发明的第四个方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:获取待生成数据库脚本的查询语句;利用预设分词算法对所述查询语句进行分词处理,得到所述查询语句对应的各个关键词;根据所述查询语句对应的各个关键词,确定所述各个关键词对应的结构化查询语句,并根据所述各个关键词对应的结构化查询语句生成所述查询语句对应的数据库脚本。本发明提供的一种生成数据库脚本的方法、装置、存储介质及计算机设备,与目前由开发人员结合表结构和业务逻辑编写数据库脚本的方式相比,本发明通过将获取的待生成数据库脚本的查询语句进行分词处理,得到各个查询语句对应的关键词,能够对待生成数据库脚本的查询语句进行解析,提取该查询语句的关键信息,此外,由于同一关键词对应唯一的结构化查询语句,通过确定各个关键词对应的结构化查询语句,能够确保开发的数据库脚本的一致性,与此同时,根据各个关键词对应的结构化查询语句生成该查询语句对应的数据库脚本,实现了数据库脚本开发的智能化处理,从而能够缩短数据库脚本的开发周期,提高数据库脚本的开发效率和准确率,大大减少了开发人员的工作量,对数据库的操作更加灵活。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1示出了本发明实施例提供的一种生成数据库脚本的方法流程图;图2示出了本发明实施例提供的另一种生成数据库脚本的方法流程图;图3示出了本发明实施例提供的一种生成数据库脚本的装置的结构示意图;图4示出了本发明实施例提供的另一种生成数据库脚本的装置的结构示意图;图5示出了本发明实施例提供的一种计算机设备的实体结构示意图;图6示出了本发明实施例提供的预设关键词词库。具体实施方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。如
背景技术
:,目前,针对简单的查询语句,开发人员能够在短时间内完成编码,而针对复杂的查询语句,需要结合表结构和业务逻辑查询出想要的结果,然而,结合表结构和业务逻辑的查询,会增加开发人员的编码难度,开发人员很难在短时间内写出高效的数据库脚本,此外,由于开发人员的技术层次各不相同,每个开发人员编写的脚本都不一致,需要人工提取最优的脚本为项目所用,由此导致项目开发效率低下,降低了项目开发的准确率,对数据库的操作不够灵活。为了解决上述问题,本发明实施例提供了一种生成数据库脚本的方法,如图1所示,所述方法包括:101、获取待生成数据库脚本的查询语句。其中,待生成脚本的查询语句为数据库查询过程中的中文描述,例如,查询某班级中相同年龄的姓名和年龄,查询小明所在年级并且当前年级的总班级数,具体地,用户点击数据库查询语句的脚本生成按钮,弹出待生成数据库脚本的查询语句的输入界面,用户按照预设查询描述模板填写查询语句,获取用户输入的待生成脚本的查询语句。例如,待生成数据库脚本的查询语句可以为查询表class+相同class.age+class.name(姓名)和age(年龄)。102、利用预设分词算法对所述查询语句进行分词处理,得到所述查询语句对应的各个关键词。其中,预设分词算法可以为预设hanlp分词算法,具体地,收集查询语句中的特定关键词,建立预设关键词词库,如图6所示,该预设关键词库中的特定关键词包括“查询”、“表”、“等于”、“大于”、“和”等等,根据该预设关键词库,利用预设hanlp分词算法对待生成脚本的查询语句进行分词处理,并获取分词后的各个关键词,具体地,可以利用预设hanlp分词算法中的预设最短路径分词算法对所述查询语句进行分词处理,需要说明的是预设分词算法可以为但不局限于预设hanlp分词算法,例如,待生成数据库脚本的查询语句为:查询表class+相同class.age+class.name(姓名)和age(年龄),根据预设关键词词库,利用预设hanlp分词算法对其进行分词处理,得到查询/表class/相同class.age/class.name(姓名)/和/age(年龄),再利用预设关键词词库将各个关键词检索出来,得到的关键词为“查询”、“表”、“相同”、“和”;再比如,待生成数据库脚本的查询语句为:查询表class(c)和表grade(g)+class.name等于小明+结果grade.grade_name(年级)和grade.class_count(班级总数),根据预设关键词词库,利用预设hanlp分词算法对其进行分词处理,得到查询/表class(c)/和/表grade(g)/class.name/等于/小明/grade.grade_name(年级)/和/grade.class_count(班级总数),再利用预设关键词词库将各个关键词检索出来,得到的关键词为“查询”、“表”、“表”、“等于”、“和”。103、根据所述查询语句对应的各个关键词,确定所述各个关键词对应的结构化查询语句,并根据所述各个关键词对应的结构化查询语句生成所述查询语句对应的数据库脚本。对于本发明实施例,根据查询语句对应的各个关键词查找预设结构化查询语句列表,确定各个关键词对应的结构化查询语句,即将获取的各个关键词匹配成对应的结构化查询语句,例如,在对待生成数据库脚本的查询语句进行分词处理后,获取查询语句中的关键词为“查询”,则将“查询”匹配成对应的结构化查询语句为select,再比如,获取查询语句中的关键词为“表user(u)”,则将“表user(u)”匹配成对应的结构化查询语句为fromuseru,并将各个关键对应的结构化查询语句拼接成查询语句对应的数据库查询脚本,例如,待生成数据库脚本的查询语句为查询表class+相同class.age+class.name(姓名)和age(年龄),则拼接后组成的数据库查询脚本为selectnameas‘姓名’,ageas‘年龄’fromclassgroupbyagehavingcount(*)>1;再比如,待生成数据库脚本的查询语句为查询表class(c)和表grade(g)+class.name等于小明+结果grade.grade_name(年级)和grade.class_count(班级总数),则拼接后组成的数据库查询脚本为selectg.grade_nameas‘年级’,g.class_countas‘班级总数’fromclasscleftjoingradegonc.grade_id=g.grade_idandc.name=‘小明’。本发明实施例提供的一种生成数据库脚本的方法,与目前由开发人员结合表结构和业务逻辑编写数据库脚本的方式相比,本发明通过将获取的待生成数据库脚本的查询语句进行分词处理,得到各个查询语句对应的关键词,能够对待生成数据库脚本的查询语句进行解析,提取该查询语句的关键信息,此外,由于同一关键词对应唯一的结构化查询语句,通过确定各个关键词对应的结构化查询语句,能够确保开发的数据库脚本的一致性,与此同时,根据各个关键词对应的结构化查询语句生成该查询语句对应的数据库脚本,实现了数据库脚本开发的智能化处理,从而能够缩短数据库脚本的开发周期,提高数据库脚本的开发效率和准确率,大大减少了开发人员的工作量,对数据库的操作更加灵活。进一步的,为了更好的说明上述数据库脚本的生成过程,作为对上述实施例的细化和扩展,本发明实施例提供了另一种生成数据库脚本的方法,如图2所示,所述方法包括:201、获取待生成数据库脚本的查询语句。对于本发明实施例,为了获取待生成数据库脚本的查询语句,步骤201具体包括:接收数据库脚本生成指令,并弹出待生成数据库脚本的查询语句输入界面;获取用户按照预设查询描述模板在所述界面中输入的查询语句。进一步地,所述预设查询描述模板包括预设查询模块、预设条件模块和预设结果模块,所述获取用户按照预设查询描述模板在所述界面中输入的查询语句,包括:获取用户按照所述预设查询模块、所述预设条件模块和所述预设结果模块在所述界面中输入的查询语句。具体地,当用户点击数据库脚本生成按钮时,会弹出待生成数据库脚本的查询语句输入界面,用户根据预设查询描述模板输入待生成数据库脚本的查询语句,其中,预设查询描述模板包括预设查询模块,预设条件模块和预设结果模块,此外,所述预设查询模块包括所述用户查询对象的表名信息,所述预设结果模块包括所述用户查询对象的字段信息,所述预设条件模块包括所述用户查询对象的条件信息,具体地,预设查询模块中的“查询”字段后紧跟着所要查询对象的表名,查询对象的表名为tablename,查询对象的表名后可以紧跟括号,括号内为指定表名的别名,若存在多个查询对象,可描述多个查询对象的表名,中间可以用关键字“和”连接描述,此外,预设结果模块中的“结果”字段可以为查询对象中的所有信息,也可以为查询对象中的特定字段,例如,查询对象的特定字段为tablename.column1和tablename.column2,与此同时,预设条件模块中的“条件”字段为用于条件描述的关键词,例如,相同、最大值、最小值、相等、平均值、不相等、大于、小于等等,进一步地,预设查询模块、预设条件模块和预设结果模块之间“+”进行连接。例如,表结构和数据如表1所示:表1idgrade_idnameagesex10011小米12女10022小明11男10032小红11女当用户查询上表班级中相同年龄的姓名和年龄时,按照预设查询描述模板输入查询语句,获取用户输入的待生成数据库脚本的查询语句,具体地,预设查询模块中的“查询”字段后接表名class,预设条件模块中的“条件”字段为相同class.age,预设结果模块中的“结果”字段为class.name和age,最终获取的待生成数据库脚本的查询语句为:查询表class+相同class.age+class.name(姓名)和age(年龄)。进一步地,当多表之间关联查询时,获取用户按照预设查询描述模板输入的待生成数据库脚本的查询语句,例如,表名为grade,表结构及数据如表2所示:表2idgrade_idgrade_nameclass_count11一年级1222二年级1233三年级13当用户查询小明所在年级和当前年级的总班级数时,按照预设查询描述模板,获取用户输入的待生成数据库脚本的查询语句,具体地,预设查询模块中的“查询”字段后接表名class和grade,预设条件模块中的“条件”字段为等于小明,预设结果模块中的“结果”字段为grade_name(年级)和class_count(班级总数),最终获取的待生成数据库脚本的查询语句为:查询表class(c)和表grade(g)+class.name等于小明+结果grade.grade_name(年级)和grade.class_count(班级总数)。由此通过获取用户按照预设查询描述模板输入的查询语句,能够对该查询语句中的关键词进行解析,并将各个关键词匹配成对应的结构化查询语句,拼接成有效的数据库脚本,能够提高数据库脚本的开发效率,降低了开发人员的工作量,避免了不同开发人员开发的数据库脚本不一致的情况。202、根据预设关键词词库,利用所述预设hanlp分词算法对所述查询语句进行分词处理,得到所述查询语句对应的各个关键词。其中,预设hanlp分词算法具体可以为预设最短路径分词算法,对于本发明实施例,收集查询语句中的特定关键词,构建预设关键词词库,该预设关键词词库中包括“查询”、“表”、“等于”、“大于”等关键词,根据预设关键词词库,利用预设最短路径分词算法对待生成数据库脚本的查询语句进行分词处理,得到该查询语句对应的各个关键词,例如,待生成数据库脚本的查询语句为:查询表class+相同class.age+class.name(姓名)和age(年龄),根据预设关键词词库,利用预设hanlp分词算法对其进行分词处理,得到查询/表class/相同class.age/class.name(姓名)/和/age(年龄),再利用预设关键词词库将各个关键词检索出来,得到的关键词为“查询”、“表”、“相同”、“和”;再比如,待生成数据库脚本的查询语句为:查询表class(c)和表grade(g)+class.name等于小明+结果grade.grade_name(年级)和grade.class_count(班级总数),根据预设关键词词库,利用预设hanlp分词算法对其进行分词处理,得到查询/表class(c)/和/表grade(g)/class.name/等于/小明/grade.grade_name(年级)/和/grade.class_count(班级总数),再利用预设关键词词库将各个关键词检索出来,得到的关键词为“查询”、“表”、“表”、“等于”、“和”。由此根据用户输入的待生成数据库脚本的查询语句,通过预设分词算法解析其关键信息,并根据解析的关键信息生成对应的数据库查询脚本,能够提高数据库脚本的开发效率和准确率,降低了开发人员的工作量。203、根据所述查询语句对应的各个关键词查询预设结构化查询语句列表,确定所述各个关键词对应的结构化查询语句。其中,预设结构化查询语句列表中存储有不同关键词及其对应的结构化查询语句,对于本发明实施例,预先收集不同查询语句中不同关键词对应的结构化查询语句,例如,关键词“查询”对应的结构化查询语句为“select”,关键词“表user(u)”对应的结构化查询语句为“fromuseru”,由此,根据收集的不同关键词对应的结构化查询语句,构建预设结构化查询语句列表,进一步地,根据确定的查询语句对应的各个关键词,查找预设结构化语句列表,确定各个关键词对应的结构化查询语句。204、将所述各个关键词对应的结构化查询语句拼接成所述查询语句对应的数据库脚本。对于本发明实施例,为了将各个结构化查询语句拼接成查询语句对应的数据库脚本,步骤204具体包括:按照预设结构化查询语句逻辑顺序将所述各个关键词对应的结构化查询语句拼接成所述查询语句对应的数据库脚本。具体地,各个关键词对应的结构化查询语句之间存在逻辑顺序,例如,结构化查询语句select的位置在结构化查询语句fromuseru之前,而查询条件位于最后,由此拼接成的数据库脚本可以为selectnameas‘姓名’,ageas‘年龄’fromclassgroupbyagehavingcount(*)>1。本发明实施例提供的另一种生成数据库脚本的方法,与目前由开发人员结合表结构和业务逻辑编写数据库脚本的方式相比,本发明通过将获取的待生成数据库脚本的查询语句进行分词处理,得到各个查询语句对应的关键词,能够对待生成数据库脚本的查询语句进行解析,提取该查询语句的关键信息,此外,由于同一关键词对应唯一的结构化查询语句,通过确定各个关键词对应的结构化查询语句,能够确保开发的数据库脚本的一致性,与此同时,根据各个关键词对应的结构化查询语句生成该查询语句对应的数据库脚本,实现了数据库脚本开发的智能化处理,从而能够缩短数据库脚本的开发周期,提高数据库脚本的开发效率和准确率,大大减少了开发人员的工作量,对数据库的操作更加灵活。进一步地,作为图1的具体实现,本发明实施例提供了一种生成数据库脚本的装置,如图3所示,所述装置包括:获取单元31、分词单元32,生成单元33。所述获取单元31,可以用于获取待生成数据库脚本的查询语句。所述获取单元31是本装置中获取待生成数据库脚本的查询语句的主要功能模块。所述分词单元32,可以用于利用预设分词算法对所述查询语句进行分词处理,得到所述查询语句对应的各个关键词。所述分词单元32是本装置中利用预设分词算法对所述查询语句进行分词处理,得到所述查询语句对应的各个关键词的主要功能模块,也是核心模块。所述生成单元33,可以用于根据所述查询语句对应的各个关键词,确定所述各个关键词对应的结构化查询语句,并根据所述各个关键词对应的结构化查询语句生成所述查询语句对应的数据库脚本。所述生成单元33是本装置中根据所述查询语句对应的各个关键词,确定所述各个关键词对应的结构化查询语句,并根据所述各个关键词对应的结构化查询语句生成所述查询语句对应的数据库脚本的主要功能模块,也是核心模块。对于本发明实施例,为了生成查询语句对应的数据库脚本,所述生成单元33,包括:确定模块331和拼接模块332。所述确定模块331,可以用于根据所述查询语句对应的各个关键词查询预设结构化查询语句列表,确定所述各个关键词对应的结构化查询语句。所述拼接模块332,可以用于将所述各个关键词对应的结构化查询语句拼接成所述查询语句对应的数据库脚本。进一步地,为了将各个关键词对应的结构化查询语句拼成数据库脚本,所述拼接模块332,具体可以用于按照预设结构化查询语句逻辑顺序将所述各个关键词对应的结构化查询语句拼接成所述查询语句对应的数据库脚本。对于本发明实施例,为了获取待生成数据库脚本的查询语句,所述获取单元31,包括:接收模块311和获取模块312。所述接收模块311,可以用于接收数据库脚本生成指令,并弹出待生成数据库脚本的查询语句输入界面。所述获取模块312,可以用于获取用户按照预设查询描述模板在所述界面中输入的查询语句。进一步地,所述预设查询描述模板包括预设查询模块、预设条件模块和预设结果模块,所述获取模块312,可以用于获取用户按照所述预设查询模块、所述预设条件模块和所述预设结果模块在所述界面中输入的查询语句。此外,所述预设查询模块包括所述用户查询对象的表名信息,所述预设结果模块包括所述用户查询对象的字段信息,所述预设条件模块包括所述用户查询对象的条件信息。进一步地,所述预设分词算法为预设hanlp分词算法,所述分词单元32,具体可以用于根据预设关键词词库,利用所述预设hanlp分词算法对所述查询语句进行分词处理,得到所述查询语句对应的各个关键词。需要说明的是,本发明实施例提供的一种生成数据库脚本的装置所涉及各功能模块的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述。基于上述如图1所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:获取待生成数据库脚本的查询语句;利用预设分词算法对所述查询语句进行分词处理,得到所述查询语句对应的各个关键词;根据所述查询语句对应的各个关键词,确定所述各个关键词对应的结构化查询语句,并根据所述各个关键词对应的结构化查询语句生成所述查询语句对应的数据库脚本。基于上述如图1所示方法和如图3所示装置的实施例,本发明实施例还提供了一种计算机设备的实体结构图,如图5所示,该计算机设备包括:处理器41、存储器42、及存储在存储器42上并可在处理器上运行的计算机程序,其中存储器42和处理器41均设置在总线43上所述处理器41执行所述程序时实现以下步骤:获取待生成数据库脚本的查询语句;利用预设分词算法对所述查询语句进行分词处理,得到所述查询语句对应的各个关键词;根据所述查询语句对应的各个关键词,确定所述各个关键词对应的结构化查询语句,并根据所述各个关键词对应的结构化查询语句生成所述查询语句对应的数据库脚本。通过本发明的技术方案,本发明通过将获取的待生成数据库脚本的查询语句进行分词处理,得到各个查询语句对应的关键词,能够对待生成数据库脚本的查询语句进行解析,提取该查询语句的关键信息,此外,由于同一关键词对应唯一的结构化查询语句,通过确定各个关键词对应的结构化查询语句,能够确保开发的数据库脚本的一致性,与此同时,根据各个关键词对应的结构化查询语句生成该查询语句对应的数据库脚本,实现了数据库脚本开发的智能化处理,从而能够缩短数据库脚本的开发周期,提高数据库脚本的开发效率和准确率,大大减少了开发人员的工作量,对数据库的操作更加灵活。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1