CN117453713A - 多类型数据库的sql语句生成方法、设备和存储介质 - Google Patents

多类型数据库的sql语句生成方法、设备和存储介质 Download PDF

Info

Publication number
CN117453713A
CN117453713A CN202311417940.6A CN202311417940A CN117453713A CN 117453713 A CN117453713 A CN 117453713A CN 202311417940 A CN202311417940 A CN 202311417940A CN 117453713 A CN117453713 A CN 117453713A
Authority
CN
China
Prior art keywords
data
database
determining
sql
action
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
CN202311417940.6A
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.)
Shenzhen Inovance Technology Co Ltd
Original Assignee
Shenzhen Inovance Technology 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 Shenzhen Inovance Technology Co Ltd filed Critical Shenzhen Inovance Technology Co Ltd
Priority to CN202311417940.6A priority Critical patent/CN117453713A/zh
Publication of CN117453713A publication Critical patent/CN117453713A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种多类型数据库的SQL语句生成方法、设备和存储介质,涉及数据处理领域,该方法包括:接收语句生成请求,确定所述语句生成请求对应的数据库类型;根据所述语句生成请求对应的数据操作内容,以及所述数据库类型关联的语法规则库,确定所述数据操作内容对应的目标语法规则;根据所述目标语法规则,生成SQL语句。解决了相关技术中开发人员很难完全掌握全部的数据库语法规则,导致使用的SQL语句错误率高的技术问题,实现了根据点按操作生成对应SQL语句,降低SQL语句使用门槛的技术效果。

Description

多类型数据库的SQL语句生成方法、设备和存储介质
技术领域
本申请涉及数据处理领域,尤其涉及一种多类型数据库的SQL语句生成方法、设备和存储介质。
背景技术
SQL(Structure Query Language,结构化查询语言)是一种数据库专用的计算机编程语言,其功能强大,且使用时非常灵活。在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的。因此,SQL语句得到越来越广泛的应用。
在相关技术中,SQL语句通常由人工来编写生成,对于使用者的背景知识要求较高。而在开发实践过程中,通常会涉及不同类型的数据库交替使用,不同类型的数据库具有自有函数,以及独特的语法规则。
这导致实际开发过程中,需要开发人员针对不同的数据库编写配套的SQL语句,而开发人员很难完全掌握全部的数据库语法规则,导致SQL语句错误率高。
发明内容
本申请实施例通过提供一种多类型数据库的SQL语句生成方法、设备和存储介质,解决了相关技术中开发人员很难完全掌握全部的数据库语法规则,导致使用的SQL语句错误率高的技术问题,实现了根据点按操作生成对应SQL语句,降低SQL语句使用门槛的技术效果。
本申请实施例提供了一种多类型数据库的SQL语句生成方法,所述多类型数据库的SQL语句生成方法包括:
接收语句生成请求,确定所述语句生成请求对应的数据库类型;
根据所述语句生成请求对应的数据操作内容,以及所述数据库类型关联的语法规则库,确定所述数据操作内容对应的目标语法规则;
根据所述目标语法规则,生成SQL语句。
可选地,所述接收语句生成请求,确定所述语句生成请求对应的数据库类型的步骤之前,包括:
输出SQL查询编辑主界面,并基于所述SQL查询编辑主界面中,可选对象显示区域接收到的选定动作,确定待操作实体对象和操作动作,其中所述待操作实体对象为数据库和/或数据表;
于SQL查询编辑主界面的操作详情显示区域,显示操作详情采集控件;
响应于所述操作详情采集控件的触发动作、所述待操作实体对象和所述操作动作,生成所述语句生成请求。
可选地,所述输出SQL查询编辑主界面,并基于所述SQL查询编辑主界面中,可选对象显示区域接收到的选定动作,确定待操作实体对象和操作动作的步骤包括:
根据关联的实体对象输出所述SQL查询编辑主界面;
基于所述可选对象显示区域接收到的第一选定动作,确定待操作实体对象,以及所述待操作实体对象对应的可操作项;
基于所述可操作项在所述第一选定动作对应的触发点输出操作动作选择控件;
基于所述操作动作选择控件接收到的第二选定动作,确定所述操作动作。
可选地,所述响应于所述操作详情采集控件的触发动作、所述实体对象和所述操作动作,生成所述语句生成请求的步骤包括:
根据所述操作动作以及所述触发动作对应的触发顺序和触发内容,确定数据操作内容;
基于所述SQL查询编辑主界面对应标识以及外接口模块确定接口传输协议;
根据所述接口传输协议、所述数据操作内容和所述待操作实体对象生成所述语句生成请求。
可选地,所述根据所述语句生成请求对应的数据操作内容,以及所述数据库类型关联的语法规则库,确定所述数据操作内容对应的目标语法规则的步骤包括:
确定数据库通用函数以及所述数据库类型关联的差异函数;
根据所述数据库通用函数以及所述差异函数确定所述语法规则库;
根据所述数据操作内容以及所述语法规则库确定所述目标语法规则。
可选地,所述根据所述数据操作内容以及所述语法规则库确定所述目标语法规则的步骤包括:
确定所述语句生成请求对应的所述数据操作内容;
根据所述数据操作内容确定对待操作实体对象执行数据库操作的操作动作;
确定所述语法规则库中所述操作动作对应的所述目标语法规则。
可选地,所述根据所述目标语法规则,生成SQL语句的步骤包括:
根据所述操作动作确定所述数据操作内容对应的数据子项;
基于所述目标语法规则将所述数据子项组装为所述SQL语句。
可选地,所述根据所述操作动作确定所述数据操作内容对应的数据子项的步骤包括以下任意一种:
当所述操作动作为添加数据列时,根据所述数据操作内容确定所述数据子项为待添加数据列名、待添加数据列的数据长度、待添加数据列的字符串长度,以及待添加数据列的数据类型;
当所述操作动作为查询数据时,根据所述数据操作内容确定所述数据子项为待查询数据列名、待查询数据长度、待查询数据字符串长度以及待查询数据类型;
当所述操作动作为创建表时,根据所述数据操作内容确定所述数据子项为待创建表名,待创建字段名、待创建字段的数据长度、待创建字段的字符串长度,以及待创建字段的数据类型。
此外,本申请还提出一种多类型数据库的SQL语句生成设备,所述多类型数据库的SQL语句生成设备包括存储器、处理器及存储在存储器上并可在处理器上运行的多类型数据库的SQL语句生成程序,所述处理器执行所述多类型数据库的SQL语句生成程序时实现如上所述的多类型数据库的SQL语句生成方法的步骤。
此外,本申请还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有多类型数据库的SQL语句生成程序,所述多类型数据库的SQL语句生成程序被处理器执行时实现如上所述的多类型数据库的SQL语句生成方法的步骤。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
由于采用了接收语句生成请求,确定所述语句生成请求对应的数据库类型;根据所述语句生成请求对应的数据操作内容,以及所述数据库类型关联的语法规则库,确定所述数据操作内容对应的目标语法规则;根据所述目标语法规则,生成SQL语句。有效解决了相关技术中开发人员很难完全掌握全部的数据库语法规则,导致使用的SQL语句错误率高的技术问题,实现了根据点按操作生成对应SQL语句,降低SQL语句使用门槛的技术效果。
附图说明
图1为本申请多类型数据库的SQL语句生成方法实施例一的流程示意图;
图2为本申请多类型数据库的SQL语句生成方法实施例一中SQL语句生成组件的结构示意图;
图3为本申请多类型数据库的SQL语句生成方法实施例二中步骤S110细化的流程示意图;
图4为本申请多类型数据库的SQL语句生成方法实施例二中SQL查询编辑主界面的示意图;
图5为本申请多类型数据库的SQL语句生成方法实施例二中操作动作为新增数据列时操作详情采集控件的示意图;
图6为本申请多类型数据库的SQL语句生成方法实施例三中步骤S120细化的流程示意图;
图7为本申请多类型数据库的SQL语句生成方法实施例四中操作动作为查询表数据时操作详情采集控件的示意图;
图8为本申请多类型数据库的SQL语句生成方法实施例四中操作动作为创建表时操作详情采集控件的示意图;
图9为本申请多类型数据库的SQL语句生成设备实施例涉及的硬件结构示意图。
具体实施方式
在相关技术中,SQL语句通常由人工来编写生成,对于使用者的背景知识要求较高。而在开发实践过程中,通常会涉及不同类型的数据库交替使用,不同类型的数据库具有自有函数,以及独特的语法规则。这导致实际开发过程中,需要开发人员针对不同的数据库编写配套的SQL语句,而开发人员很难完全掌握全部的数据库语法规则,导致SQL语句错误率高。本申请实施例采用的主要技术方案是:根据SQL查询编辑主界面各个区域接收到的触发动作,生成语句生成请求并发送至语句生成模块,语句生成模块在接收到语句生成请求后,根据请求包含的数据库类型确定语法规则库,根据请求包含的数据操作内容生成目标语法规则,再基于目标语法规则和数据操作内容生成SQL语句。从而实现了降低SQL语句编辑门槛,提高数据库相关开发效率以及SQL语句开发准确性。
1、可以通过图形化界面快速生成需求的SQL语句。
2、兼容多种数据库类型的SQL生成功能,扩展性很强,对于在同一个界面显示不同类型数据库的数据库场景,可以省去大量重复开发工作,开发效率较高。
为了更好地理解上述技术方案,下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,能够以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整地传达给本领域的技术人员。
实施例一
本申请实施例一公开了一种多类型数据库的SQL语句生成方法,参照图1,所述多类型数据库的SQL语句生成方法包括:
步骤S110,接收语句生成请求,确定所述语句生成请求对应的数据库类型。
在本实施例中,通过将SQL语句生成模块与图形化界面解耦,图形化界面即为SQL查询编辑主界面,或者相关联的窗口,进而实现SQL语句生成模块与数据库实体对象的动态组合,使得SQL语句生成功能与数据库实体对象其他功能定义相互独立,从而使得SQL语句生成组件更好地适应不同类型的数据库实体对象。如图2所示,SQL语句生成组件中包含,对外接口模块、语句生成模块和数据库语法规则模块,其中对外接口模块用于外部调用语句生成模块,语句生成模块用于按照预设的目标语法规则生成SQL语句,数据库语法规则模块用于适配不同类型数据库的语法规则库,为语句生成模块生成差异化SQL提供语法规则。
在接收到语句生成请求后,解析语句生成请求包含的信息,确定待操作实体对象,以及待操作实体对象的数据库类型。其中每个待操作实体对象都对应有数据库类型。待操作实体对象为待操作的数据库和/数据表。其中数据库类型与语法规则库关联。
步骤S120,根据所述语句生成请求对应的数据操作内容,以及所述数据库类型关联的语法规则库,确定所述数据操作内容对应的目标语法规则。
在本实施例中,数据操作内容为SQL查询编辑主界面及其关联的各个控件接收到的触发动作,为使用者通过在SQL查询编辑主界面及其关联的各个控件的具有顺序的操作步骤,进而对实体对象执行的操作。数据操作内容包括了操作动作的类型以及该操作动作对应的具体内容。语法规则库为待操作实体对象对应的SQL语法库,包含了所有的SQL语法规则,目标语法规则为语法规则库中的部分语法规则。
作为一种可选实施方式,解析获取语句生成请求对应的数据库类型,根据数据库类型确定待操作实体对象的语法规则库;解析获取语句生成请求对应的数据操作内容,根据数据操作内容对应的操作动作,确定语法规则库中的目标语法规则。
步骤S130,根据所述目标语法规则,生成SQL语句。
在本实施例中,目标语法规则是SQL语句的框架,包含SQL语法规则以及待填充的参数,根据数据操作内容确定各个待填充的参数,再基于目标语法规则将预设的语句字段以及填充后的参数,按照语法规则确定的顺序进行组装,生成SQL语句。
示例性的,查询条件区域:用户可以输入查询条件,如WHERE子句中的各种条件表达式。查询表格区域:用户可以选择查询的数据表。查询字段区域:用户可以选择查询的字段。排序区域:用户可以设置查询结果的排序方式。分页区域:用户可以设置分页查询的页码和每页的记录数。在用户进行操作后,触发动作会被捕捉到,例如用户点击查询按钮或者进行其他操作。
SQL查询编辑主界面的各个区域捕获到用户的触发动作后,根据触发动作,生成对应的语句生成请求。请求中包含数据库类型和数据操作内容。语句生成模块接收到语句生成请求,根据请求中的数据库类型,确定使用哪个语法规则库。根据请求中的数据操作内容,生成目标语法规则。例如,根据查询条件区域的输入,生成WHERE子句的语法规则。基于目标语法规则和数据操作内容,通过模板引擎或者字符串拼接方式生成SQL语句。例如,根据查询表格区域的选择,生成SELECT语句中的表名;根据查询字段区域的选择,生成SELECT语句中的字段;根据排序区域和分页区域的设置,生成相应的ORDERBY和LIMIT子句。最终生成的SQL语句可以通过返回给用户进行展示或者直接用于数据库操作。
可以实现方便地在SQL查询编辑主界面进行操作,同时自动生成符合语法规则的SQL语句,提高用户的查询效率和准确性。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
由于采用了接收语句生成请求,确定所述语句生成请求对应的数据库类型;根据所述语句生成请求对应的数据操作内容,以及所述数据库类型关联的语法规则库,确定所述数据操作内容对应的目标语法规则;根据所述目标语法规则,生成SQL语句。有效解决了相关技术中开发人员很难完全掌握全部的数据库语法规则,导致使用的SQL语句错误率高的技术问题,实现了根据点按操作生成对应SQL语句,降低SQL语句使用门槛的技术效果。
基于实施例一,本申请实施例二提出一种多类型数据库的SQL语句生成方法,参照图3,步骤S110之前,包括:
步骤S210,输出SQL查询编辑主界面,并基于所述SQL查询编辑主界面中,可选对象显示区域接收到的选定动作,确定待操作实体对象和操作动作,其中所述待操作实体对象为数据库和/或数据表。
在本实施例中,在接收到SQL查询编辑器启动指令后,获取编辑器关联的实体对象,输出包含有实体对象名称的SQL查询编辑主界面。基于所述SQL查询编辑主界面中,可选对象显示区域接收到的选定动作,确定待操作实体对象,其中所述实体对象为数据库和/或数据表。确定待操作实体对象后,获取待操作实体对象可执行的数据库操作,并输出操作动作选择控件,基于操作动作选择控件接收到的选定动作,确定待操作实体对象的操作动作。其中操作动作包括但不限于创建表、修改表、删除表、查询表数据、修改表数据、删除表数据。
图4为本申请SQL查询编辑主界面的一个示例。左侧为可选对象显示区域,列出了可操作的实体对象,实体对象按照一定的类型进行排布,本实施例中按照关系型数据库以及非关系型数据库进行分类显示。
步骤S220,于SQL查询编辑主界面的操作详情显示区域,显示操作详情采集控件。
在本实施例中,操作详情采集控件与操作动作关联。不同的操作动作具有对应的操作详情采集控件。在确定操作动作后,获取与操作动作相关的操作详情采集控件,并根据操作动作填充对应的数据至操作详情采集控件,填充完成后在SQL查询编辑主界面的操作详情显示区域显示所述操作详情采集控件。
示例性的,当操作动作为新增时,显示新增对应的操作详情采集控件,若待操作实体对象具有预设数据格式,将预设数据格式对应的信息填充至操作详情采集控件;若待操作实体对象不具有预设数据格式,则不对操作详情采集控件进行填充,直接显示。
示例性的,当操作动作为删除数据时,显示删除数据对应的操作详情采集控件,并将待操作实体对象中可删除的数据填充至操作详情采集控件,然后在操作详情显示区域显示操作详情采集控件。
步骤S230,响应于所述操作详情采集控件的触发动作、所述待操作实体对象和所述操作动作,生成所述语句生成请求。
在本实施例中,触发动作为使用者在操作详情采集控件执行操作的响应信息。包括但不限于选定,拖拽以及输入等。响应于所述操作详情采集控件的触发动作,根据触发动作以及操作动作,确定对待操作实体对象的数据操作内容,根据数据操作内容以及待操作实体对象生成语句生成请求。
示例性的,设计一个用户界面,提供SQL查询编辑功能。用户可以在该界面上输入SQL查询语句,对数据库进行操作。在SQL查询编辑主界面上,提供一个可选对象显示区域。显示数据库和数据表等可供选择的实体对象。当用户在可选对象显示区域中进行选择时,接收并记录选定的动作。根据用户选择的动作判断待操作的实体对象和操作动作。在SQL查询编辑主界面上,设计一个操作详情显示区域。该区域显示操作详情采集控件,用于采集用户的操作详情。在操作详情显示区域中,提供相应的控件,用于采集用户的操作详情。通过这些控件,用户可以选择特定的操作和操作参数。当用户使用操作详情采集控件进行操作时,根据触发动作、待操作实体对象和操作动作生成相应的语句。将所需的操作信息传递给SQL语句生成模块,生成相应的SQL语句。
可选地,步骤S210包括:
步骤S211,根据关联的实体对象输出所述SQL查询编辑主界面。
在本实施例中,获取SQL查询编辑启动指令对应的实体对象,根据实体对象填充至SQL查询编辑主界面,并输出SQL查询编辑主界面,以显示实体对象的名称。
步骤S212,基于所述可选对象显示区域接收到的第一选定动作,确定待操作实体对象,以及所述待操作实体对象对应的可操作项。
在本实施例中,可选对象显示区域为SQL查询编辑主界面的一个窗口,其中展示有可选的实体对象,基于可选对象显示区域的第一选定动,确定待操作实体对象,获取待操作实体对象可以执行的操作类型,生成可操作项,可操作项也是以窗口或控件形式在SQL查询编辑主界面进行显示。
步骤S213,基于所述可操作项在所述第一选定动作对应的触发点输出操作动作选择控件。
在本实施例中,获取操作动作选择控件,将可操作项填充至该控件,并将填充后的操作动作选择控件在SQL查询编辑主界面进行显示。
作为一种可选实施方式,获取操作动作选择控件,将可操作项填充至该控件,并将填充后的操作动作选择控件在第一选定动作对应的光标触发点处进行显示输出。
步骤S214,基于所述操作动作选择控件接收到的第二选定动作,确定所述操作动作。
在本实施例中,基于操作动作选择控件接收到的第二选定动作,确定可操作项中的一个操作动作。第二选定操作可以是键盘输入、鼠标拖拽或者鼠标点击。
示例性的,通过分析关联的实体对象,动态生成相应的数据库和数据表的选择界面,并将其展示在SQL查询编辑主界面上。当用户在可选对象显示区域中进行第一选定动作时,根据用户的选择确定待操作的实体对象。根据待操作实体对象,检索相应的可操作项,并将其呈现给用户选择。在SQL查询编辑主界面中的操作详情显示区域,根据第一选定动作确定的可操作项,动态生成相应的操作动作选择控件。这些控件包括下拉菜单、单选按钮或复选框,用于用户选择特定的操作动作。当用户在操作动作选择控件中进行第二选定动作时,根据用户的选择确定所需的操作动作。将所选的操作动作记录下来,作为后续生成语句的依据。
进一步地,作为一种可选实施方式,支持多种类型的实体对象,如视图、存储过程等,以满足更广泛的数据库操作需求。提供高级查询功能,如条件筛选、排序、分页等,以增强查询灵活性。集成智能提示功能,提供SQL语法的自动完成功能,减少用户输入错误和提高开发效率。支持保存和管理查询历史记录,方便用户快速引用以往的查询。实现权限管理,限制用户对数据库的操作权限,保障数据安全。增加数据可视化分析功能,提供图表和报表展示数据库查询结果,帮助用户更好地理解数据。
可选地,步骤S230包括:
步骤S231,根据所述操作动作以及所述触发动作对应的触发顺序和触发内容,确定数据操作内容。
在本实施例中,根据操作详情采集控件接收到的触发动作,确定每个触发动作的触发顺序以及触发内容,根据触发顺序以及触发内容,按照操作动作确定数据操作内容。
示例性的,参照图5,根据使用者在操作详情采集控件的触发动作,确定触发顺序以及触发内容具体为第一步:新增第一行,设置名称为“字段一”,数据类型为“bit”,长度为“0”,字符串长度为“0”,数值为“0”。第二步:新增第二行,设置名称为“字段二”,数据类型为“integer”,长度为“0”,字符串长度为“0”,数值为“0”。根据操作动作为新增数据行以及上述具体内容,确定数据操作内容。
步骤S232,基于所述SQL查询编辑主界面对应标识以及外接口模块确定接口传输协议。
在本实施例中,SQL查询编辑主界面可以有多个,并且有不同的开发规则以及接口,则根据SQL查询编辑主界面对应标识,确定SQL查询编辑主界面的输出接口,根据输出接口以及SQL语句生成模块的外接口模块,确定接口传输协议。该协议用于规定两个接口间数据传输的格式以及加密方式。
步骤S233,根据所述接口传输协议、所述数据操作内容和所述待操作实体对象生成所述语句生成请求。
在本实施例中,在确定接口传输协议后,根据数据操作内容和待操作实体对象作为生成参数,基于接口传输协议和生成参数生成所述语句生成请求。
作为一种可选实施方式,根据操作动作和其对应的触发动作的触发顺序和触发内容,确定需要执行的具体数据操作,如插入、更新或删除数据等。分析SQL查询编辑主界面和外接口模块的特性和需求,确定合适的接口传输协议,如HTTP、RESTful API等。根据确定的接口传输协议,将数据操作内容和实体对象组合成合适格式的请求,如JSON或XML格式。请求中应包括所需执行的具体数据操作的相关信息,如表名、字段名、条件等。
进一步地,还可以实现支持多种接口传输协议,如SOAP、GraphQL等,以满足不同的外接接口需求。提供更灵活的语句生成方式,支持使用模板或者自定义脚本生成请求语句,以适应各种复杂的数据操作需求。支持数据操作的自动化执行,如定时任务或触发器,以实现数据的定期更新或事件触发的自动化操作。实现数据操作的可回滚和事务管理功能,以确保数据的一致性和完整性。集成安全机制,如用户认证和权限管理,以保护数据库的安全。
由于采用了输出SQL查询编辑主界面,并基于所述SQL查询编辑主界面中,可选对象显示区域接收到的选定动作,确定待操作实体对象和操作动作,其中所述待操作实体对象为数据库和/或数据表;于SQL查询编辑主界面的操作详情显示区域,显示操作详情采集控件;响应于所述操作详情采集控件的触发动作、所述待操作实体对象和所述操作动作,生成所述语句生成请求。用户可以在SQL查询编辑主界面上进行数据库操作,并通过操作详情采集控件选择操作和参数,最终生成相应的语句。并且SQL查询编辑主界面与SQL语句生成模块解耦合,通过接口协议自适配的方式,SQL查询编辑主界面更换了开发人员或者UI发生变化,都能无缝接入SQL语句生成模块,进一步降低SQL语句生成系统的开发难度以及应用成本。
基于实施例一,本申请实施例三提出一种多类型数据库的SQL语句生成方法,参照图6,步骤S120包括:
步骤S310,确定数据库通用函数以及所述数据库类型关联的差异函数。
在本实施例中,数据库或者数据表的语法规则,即调用的函数,分为通用函数以及差异函数,其中通用函数是所有实体对象共同可使用的函数,差异函数为待操作实体对象特有的调用函数。
获取数据库通用函数,并根据数据库类型确定关联的差异函数。
步骤S320,根据所述数据库通用函数以及所述差异函数确定所述语法规则库。
在本实施例中,语法规则库存储有待操作实体对象进行SQL语句编写需要用到的语法规则。
根据数据库通用函数以及差异函数组成待操作实体对象的语法规则库。
步骤S330,根据所述数据操作内容以及所述语法规则库确定所述目标语法规则。
在本实施例中,目标语法规则为数据操作内容对应的语法规则,根据数据操作内容确定操作动作,即数据库操作类型,根据操作动作在语法规则库中确定对应的目标语法规则。即所有的数据库操作类型,在语法规则库中有对应的语法规则。
示例性的,首先确定通用的数据库函数,这些函数在大多数数据库管理系统中都通用,如字符串操作函数、日期函数等。其次,根据不同的数据库类型,确定各自特定的差异函数,这些函数在特定的数据库管理系统中可用,但在其他系统中可能不适用。基于确定的数据库通用函数和差异函数,建立一个语法规则库,包含不同数据库管理系统中可用的函数语法规则。语法规则库应描述每个函数的语法结构、参数类型和参数说明,以便在生成目标语法规则时可以根据数据操作内容进行匹配和转换。分析数据操作内容,包括操作类型、表名、字段名、条件等,根据语法规则库中的函数语法规则,生成目标数据库管理系统可识别的语法规则。根据操作类型和所需的数据操作内容,通过匹配语法规则库中的函数语法规则和参数,生成目标语句的语法规则。
进一步地,本实施例还可以实现支持动态语法规则库的更新和扩展,以适应新的数据库版本或特定数据库的变化。提供可视化界面或配置文件,方便用户自定义或修改语法规则库中的函数语法规则。支持不同的查询引擎或存储引擎,针对不同的引擎实现特定的语法规则和优化策略,以提高查询性能。实现语法规则库的版本管理和发布,方便系统升级和维护。支持查询的优化和调优工具,提供性能分析和调优建议,以提高查询效率。集成数据库文档和查询分析工具,提供更好的开发者体验和数据分析能力。
可选地,步骤S330包括:
步骤S331,确定所述语句生成请求对应的所述数据操作内容;
步骤S332,根据所述数据操作内容确定对待操作实体对象执行数据库操作的操作动作;
步骤S333,确定所述语法规则库中所述操作动作对应的所述目标语法规则。
在本实施例中,数据操作内容包含了对待操作实体对象进行操作的各个步骤,以及各个步骤的操作顺序。
作为一种可选实施方式,分析语句生成请求中的查询条件、操作类型、表名、字段名等信息,确定所需的数据操作内容。根据查询条件的不同形式,如等于、大于、小于等,确定数据操作内容中的条件表达式。根据语句生成请求中的操作类型,如查询、插入、更新、删除等,确定对应的数据操作内容。根据数据操作内容中的操作类型和相关参数,确定执行数据库操作的操作动作,如查询、插入、更新、删除等。根据操作动作和数据操作内容,调用相应数据库驱动或API,执行数据操作。基于已确定的操作动作和相关参数,参考语法规则库中的操作动作和参数定义,生成目标语句的语法规则。根据目标语句的操作类型、表名、字段名、条件等,匹配和转换语法规则库中对应的函数语法规则,生成目标语句的语法规则。
进一步地,本实施例可以实现支持更多的操作动作类型和参数选项,以满足更多种类的数据库操作需求。根据不同的数据源和数据库类型,定制特定的操作动作和语法规则,支持更广泛的数据库管理系统。支持高级操作动作,如批量插入、批量更新、批量删除等,提高数据操作的效率。提供错误处理和异常处理机制,处理数据库操作中的错误和异常情况。支持事务操作,确保数据库操作的一致性和完整性。集成权限管理和安全机制,保护数据库中的数据安全性。
基于实施例一,本申请实施四提出一种多类型数据库的SQL语句生成方法,步骤S130包括:
步骤S410,根据所述操作动作确定所述数据操作内容对应的数据子项;
步骤S420,基于所述目标语法规则将所述数据子项组装为所述SQL语句。
在本实施例中,数据子项为数据操作内容对应的各个操作步骤对应的内容,可以是对数据的属性设置,也可以是查询条件等。即数据子项为根据目标语法规则进行拼接的基本参数。
作为一种可选实施方式,根据操作动作类型,确定所需的基本参数,如表名、字段名、条件等。根据目标语法规则中的参数定义,将基本参数进行拼接,生成数据子项。根据目标语法规则中的SQL语句模板,将数据子项填充到相应的位置。根据操作动作类型,生成对应的SQL语句。
示例性的,假设有一个查询操作,操作动作为SELECT,表名为"users",需要查询字段名为"name"的用户。操作动作为SELECT,所需的基本参数为表名和字段名。将表名和字段名进行拼接,生成数据子项:数据子项="users.name"。根据目标语法规则中的SQL语句模板,将数据子项填充到相应的位置,生成SQL语句:"SELECT users.name FROM users"。
通过以上步骤,将操作动作和数据操作内容转换为SQL语句,实现了将语句生成请求转化为可执行的数据库操作。根据实际需求,可以定义和扩展更多的操作动作和语法规则,以适应不同的数据库操作场景。
可选地,步骤S410包括以下步骤中的至少一个:
当所述操作动作为添加数据列时,根据所述数据操作内容确定所述数据子项为待添加数据列名、待添加数据列的数据长度、待添加数据列的字符串长度,以及待添加数据列的数据类型;
参照图7,当所述操作动作为查询数据时,根据所述数据操作内容确定所述数据子项为待查询数据列名、待查询数据长度、待查询数据字符串长度以及待查询数据类型;
参照图8,当所述操作动作为创建表时,根据所述数据操作内容确定所述数据子项为待创建表名,待创建字段名、待创建字段的数据长度、待创建字段的字符串长度,以及待创建字段的数据类型。
本申请还提出一种多类型数据库的SQL语句生成设备,参照图9,图9为本申请实施例方案涉及的硬件运行环境的多类型数据库的SQL语句生成设备结构示意图。
如图9所示,该多类型数据库的SQL语句生成设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图9中示出的结构并不构成对多类型数据库的SQL语句生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
可选地,存储器1005与处理器1001电性连接,处理器1001可用于控制存储器1005的运行,还可以读取存储器1005中的数据以实现多类型数据库的SQL语句生成。
可选地,如图9所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及多类型数据库的SQL语句生成程序。
可选地,在图9所示的多类型数据库的SQL语句生成设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本申请多类型数据库的SQL语句生成设备中的处理器1001、存储器1005可以设置在多类型数据库的SQL语句生成设备中。
如图9所示,所述多类型数据库的SQL语句生成设备通过处理器1001调用存储器1005中存储的多类型数据库的SQL语句生成程序,并执行本申请实施例提供的多类型数据库的SQL语句生成方法的相关步骤操作:
接收语句生成请求,确定所述语句生成请求对应的数据库类型;
根据所述语句生成请求对应的数据操作内容,以及所述数据库类型关联的语法规则库,确定所述数据操作内容对应的目标语法规则;
根据所述目标语法规则,生成SQL语句。
可选地,处理器1001可以调用存储器1005中存储的多类型数据库的SQL语句生成程序,还执行以下操作:输出SQL查询编辑主界面,并基于所述SQL查询编辑主界面中,可选对象显示区域接收到的选定动作,确定待操作实体对象和操作动作,其中所述待操作实体对象为数据库和/或数据表;
于SQL查询编辑主界面的操作详情显示区域,显示操作详情采集控件;
响应于所述操作详情采集控件的触发动作、所述待操作实体对象和所述操作动作,生成所述语句生成请求。
可选地,处理器1001可以调用存储器1005中存储的多类型数据库的SQL语句生成程序,还执行以下操作:根据关联的实体对象输出所述SQL查询编辑主界面;
基于所述可选对象显示区域接收到的第一选定动作,确定待操作实体对象,以及所述待操作实体对象对应的可操作项;
基于所述可操作项在所述第一选定动作对应的触发点输出操作动作选择控件;
基于所述操作动作选择控件接收到的第二选定动作,确定所述操作动作。
可选地,处理器1001可以调用存储器1005中存储的多类型数据库的SQL语句生成程序,还执行以下操作:根据所述操作动作以及所述触发动作对应的触发顺序和触发内容,确定数据操作内容;
基于所述SQL查询编辑主界面对应标识以及外接口模块确定接口传输协议;
根据所述接口传输协议、所述数据操作内容和所述待操作实体对象生成所述语句生成请求。
可选地,处理器1001可以调用存储器1005中存储的多类型数据库的SQL语句生成程序,还执行以下操作:确定数据库通用函数以及所述数据库类型关联的差异函数;
根据所述数据库通用函数以及所述差异函数确定所述语法规则库;
根据所述数据操作内容以及所述语法规则库确定所述目标语法规则。
可选地,处理器1001可以调用存储器1005中存储的多类型数据库的SQL语句生成程序,还执行以下操作:确定所述语句生成请求对应的所述数据操作内容;
根据所述数据操作内容确定对待操作实体对象执行数据库操作的操作动作;
确定所述语法规则库中所述操作动作对应的所述目标语法规则。
可选地,处理器1001可以调用存储器1005中存储的多类型数据库的SQL语句生成程序,还执行以下操作:根据所述操作动作确定所述数据操作内容对应的数据子项;
基于所述目标语法规则将所述数据子项组装为所述SQL语句。
可选地,处理器1001可以调用存储器1005中存储的多类型数据库的SQL语句生成程序,还执行以下操作:当所述操作动作为添加数据列时,根据所述数据操作内容确定所述数据子项为待添加数据列名、待添加数据列的数据长度、待添加数据列的字符串长度,以及待添加数据列的数据类型;
当所述操作动作为查询数据时,根据所述数据操作内容确定所述数据子项为待查询数据列名、待查询数据长度、待查询数据字符串长度以及待查询数据类型;
当所述操作动作为创建表时,根据所述数据操作内容确定所述数据子项为待创建表名,待创建字段名、待创建字段的数据长度、待创建字段的字符串长度,以及待创建字段的数据类型。
此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有多类型数据库的SQL语句生成程序,所述多类型数据库的SQL语句生成程序被处理器执行时实现如上所述多类型数据库的SQL语句生成方法任一实施例的相关步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例,或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框,以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本申请可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二,以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种多类型数据库的SQL语句生成方法,其特征在于,所述多类型数据库的SQL语句生成方法包括:
接收语句生成请求,确定所述语句生成请求对应的数据库类型;
根据所述语句生成请求对应的数据操作内容,以及所述数据库类型关联的语法规则库,确定所述数据操作内容对应的目标语法规则;
根据所述目标语法规则,生成SQL语句。
2.如权利要求1所述的多类型数据库的SQL语句生成方法,其特征在于,所述接收语句生成请求,确定所述语句生成请求对应的数据库类型的步骤之前,包括:
输出SQL查询编辑主界面,并基于所述SQL查询编辑主界面中,可选对象显示区域接收到的选定动作,确定待操作实体对象和操作动作,其中所述待操作实体对象为数据库和/或数据表;
于SQL查询编辑主界面的操作详情显示区域,显示操作详情采集控件;
响应于所述操作详情采集控件的触发动作、所述待操作实体对象和所述操作动作,生成所述语句生成请求。
3.如权利要求2所述的多类型数据库的SQL语句生成方法,其特征在于,所述输出SQL查询编辑主界面,并基于所述SQL查询编辑主界面中,可选对象显示区域接收到的选定动作,确定待操作实体对象和操作动作的步骤包括:
根据关联的实体对象输出所述SQL查询编辑主界面;
基于所述可选对象显示区域接收到的第一选定动作,确定待操作实体对象,以及所述待操作实体对象对应的可操作项;
基于所述可操作项在所述第一选定动作对应的触发点输出操作动作选择控件;
基于所述操作动作选择控件接收到的第二选定动作,确定所述操作动作。
4.如权利要求2所述的多类型数据库的SQL语句生成方法,其特征在于,所述响应于所述操作详情采集控件的触发动作、所述实体对象和所述操作动作,生成所述语句生成请求的步骤包括:
根据所述操作动作以及所述触发动作对应的触发顺序和触发内容,确定数据操作内容;
基于所述SQL查询编辑主界面对应标识以及外接口模块确定接口传输协议;
根据所述接口传输协议、所述数据操作内容和所述待操作实体对象生成所述语句生成请求。
5.如权利要求1所述的多类型数据库的SQL语句生成方法,其特征在于,所述根据所述语句生成请求对应的数据操作内容,以及所述数据库类型关联的语法规则库,确定所述数据操作内容对应的目标语法规则的步骤包括:
确定数据库通用函数以及所述数据库类型关联的差异函数;
根据所述数据库通用函数以及所述差异函数确定所述语法规则库;
根据所述数据操作内容以及所述语法规则库确定所述目标语法规则。
6.如权利要求5所述的多类型数据库的SQL语句生成方法,其特征在于,所述根据所述数据操作内容以及所述语法规则库确定所述目标语法规则的步骤包括:
确定所述语句生成请求对应的所述数据操作内容;
根据所述数据操作内容确定对待操作实体对象执行数据库操作的操作动作;
确定所述语法规则库中所述操作动作对应的所述目标语法规则。
7.如权利要求1所述的多类型数据库的SQL语句生成方法,其特征在于,所述根据所述目标语法规则,生成SQL语句的步骤包括:
根据所述操作动作确定所述数据操作内容对应的数据子项;
基于所述目标语法规则将所述数据子项组装为所述SQL语句。
8.如权利要求7所述的多类型数据库的SQL语句生成方法,其特征在于,所述根据所述操作动作确定所述数据操作内容对应的数据子项的步骤包括以下任意一种:
当所述操作动作为添加数据列时,根据所述数据操作内容确定所述数据子项为待添加数据列名、待添加数据列的数据长度、待添加数据列的字符串长度,以及待添加数据列的数据类型;
当所述操作动作为查询数据时,根据所述数据操作内容确定所述数据子项为待查询数据列名、待查询数据长度、待查询数据字符串长度以及待查询数据类型;
当所述操作动作为创建表时,根据所述数据操作内容确定所述数据子项为待创建表名,待创建字段名、待创建字段的数据长度、待创建字段的字符串长度,以及待创建字段的数据类型。
9.一种多类型数据库的SQL语句生成设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的多类型数据库的SQL语句生成程序,所述处理器执行所述多类型数据库的SQL语句生成程序时实现如权利要求1至8任一项所述的多类型数据库的SQL语句生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有多类型数据库的SQL语句生成程序,所述多类型数据库的SQL语句生成程序被处理器执行时实现如权利要求1至8任一项所述的多类型数据库的SQL语句生成方法的步骤。
CN202311417940.6A 2023-10-26 2023-10-26 多类型数据库的sql语句生成方法、设备和存储介质 Pending CN117453713A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311417940.6A CN117453713A (zh) 2023-10-26 2023-10-26 多类型数据库的sql语句生成方法、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311417940.6A CN117453713A (zh) 2023-10-26 2023-10-26 多类型数据库的sql语句生成方法、设备和存储介质

Publications (1)

Publication Number Publication Date
CN117453713A true CN117453713A (zh) 2024-01-26

Family

ID=89588704

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311417940.6A Pending CN117453713A (zh) 2023-10-26 2023-10-26 多类型数据库的sql语句生成方法、设备和存储介质

Country Status (1)

Country Link
CN (1) CN117453713A (zh)

Similar Documents

Publication Publication Date Title
CN106598612B (zh) 一种数据库中数据表的操作方法及系统
US10318628B2 (en) System and method for creation of templates
US6651240B1 (en) Object-oriented software development support apparatus and development support method
CN112650766B (zh) 数据库数据操作的方法、系统及服务器
CN105511873B (zh) 用户界面控件展示方法及装置
CN108762743B (zh) 一种数据表操作代码生成方法及装置
JP2005515518A (ja) レガシーソフトウエアアプリケーションを現代的オブジェクト指向型システムへ変換する方法及びシステム
CN103631601A (zh) 一种代码生成方法和装置
US8701086B2 (en) Simplifying analysis of software code used in software systems
CN114020246A (zh) 导航卡尺h5页面编排方法、装置、设备及介质
JP6370503B1 (ja) プログラム作成装置
CN113590097B (zh) 一种api接口的生成方法、装置、电子设备及存储介质
CN112825038A (zh) 基于通用组件语言规范的可视化页面制作方法和相关产品
CN113703755A (zh) 代码生成方法及代码生成装置
CN116028062A (zh) 目标代码的生成方法、npu指令的显示方法及装置
JP2020160854A (ja) コード管理システム、及びコード管理方法
CN117453713A (zh) 多类型数据库的sql语句生成方法、设备和存储介质
US20210165726A1 (en) Transferring data from a source complex variable to a target complex variable
CN113934748A (zh) 混合型sql脚本文件生成方法、执行方法及装置
CN114328572A (zh) 基于sql解析器的数据查询方法、装置、系统及介质
KR101765324B1 (ko) Sql과 다이어그램을 이용하는 소스코드 생성 장치 및 그의 처리 방법
CN116627390B (zh) 航空软件开发中icd文件的替代方法及装置
JP2016146022A (ja) モデルベース開発支援装置、モデルベース開発支援方法、およびモデルベース開発支援プログラム
CN112130841B (zh) Sql开发方法、装置及终端设备
US11526336B2 (en) Community-oriented, cloud-based digital annealing platform

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination