一种逻辑运算的处理方法、装置、转换插件及存储介质制造方法及图纸

技术编号:20285246 阅读:26 留言:0更新日期:2019-02-10 17:49
本发明专利技术实施例公开了一种逻辑运算的处理方法、装置、转换插件及存储介质。通过获取原始SQL查询条件表达式,将原始SQL查询条件表达式按照第一预设规则等价转换生成目标SQL查询条件表达式,然后存储或执行包含该目标SQL查询条件表达式的SQL语句。实现通过提取出相同的查询条件表达式来简化SQL语句中的逻辑运算表达式,以提高数据检索效率。

A Processing Method, Device, Conversion Plug-in and Storage Medium for Logical Operations

The embodiment of the present invention discloses a processing method, device, conversion plug-in and storage medium for logical operation. By acquiring the original SQL query conditional expression, the original SQL query conditional expression is transformed into the target SQL query conditional expression equivalently according to the first preset rule, and then the SQL statement containing the target SQL query conditional expression is stored or executed. By extracting the same query condition expression, the logical operation expression in the SQL statement can be simplified to improve the efficiency of data retrieval.

【技术实现步骤摘要】
一种逻辑运算的处理方法、装置、转换插件及存储介质
本专利技术涉及数据处理
,尤其涉及一种逻辑运算的处理方法、装置、转换插件及存储介质。
技术介绍
结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。此外,结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能,并且它的影响已经超出数据库领域,得到其他领域的重视和采用,如人工智能领域的数据检索,第四代软件开发工具中嵌入SQL的语言等。SQL语句中常用逻辑运算符AND和OR来联结多个查询条件。在实际应用中,SQL语句逻辑复杂且冗长,数据库中的记录需要同时满足一个或多个条件才能返回给用户。应用中编写的SQL语句,可能包含相同的查询条件,如此会出现多次重复执行相同查询条件的情况,影响数据检索效率。
技术实现思路
本专利技术实施例提供一种逻辑运算的处理方法、装置、转换插件及存储介质,通过提取出相同的查询条件表达式来简化SQL语句中的逻辑运算表达式,以提高数据检索效率。第一方面,本专利技术实施例提供了一种逻辑运算的处理方法,该方法包括:获取原始SQL查询条件表达式;将所述原始SQL查询条件表达式按照第一预设规则等价转换生成目标SQL查询条件表达式;存储或执行包含所述目标SQL查询条件表达式的SQL语句。第二方面,本专利技术实施例还提供了一种逻辑运算的处理装置,该装置包括:获取语句模块,用于获取原始SQL查询条件表达式;处理语句模块,用于将所述原始SQL查询条件表达式按照第一预设规则等价转换生成目标SQL查询条件表达式;结果语句执行模块,用于存储或执行包含所述目标SQL查询条件表达式的SQL语句。第三方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本专利技术实施例提供的逻辑运算的处理方法。第四方面,本专利技术实施例还提供了一种转换插件,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本专利技术实施例提供的逻辑运算的处理方法。本专利技术实施例,获取原始SQL查询条件表达式,将原始SQL查询条件表达式按照第一预设规则等价转换生成目标SQL查询条件表达式,然后存储或执行包含该目标SQL查询条件表达式的SQL语句。实现通过提取出相同的查询条件表达式来简化SQL语句中的逻辑运算表达式,以提高数据检索效率。附图说明图1是本专利技术实施例提供的一种逻辑运算的处理方法的流程示意图;图2是本专利技术实施例提供的另一种逻辑运算的处理方法的流程示意图;图3是本专利技术实施例提供的一种逻辑运算的处理装置的结构示意图;图4是本专利技术实施例提供的一种转换插件的结构示意图。图5是逻辑运算(AANDB)OR(CANDA)的语法树结构图;图6是逻辑运算AANDBANDC的原始语法树结构图;图7是逻辑运算AANDBANDC规则转换后的语法树结构图;图8是逻辑运算((AANDB)OR(CANDA))ANDB的语法树结构图;图9是逻辑运算((AANDB)OR(CANDA))ANDB第一次转换后的语法树结构图;图10是逻辑运算((AANDB)OR(CANDA))ANDB第二次转换后的语法树结构图;图11是逻辑运算((AANDB)OR(CANDA))ANDB第三次转换后的语法树结构图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。图1为本专利技术实施例提供的一种逻辑运算的处理方法的流程示意图,该方法可以由本专利技术实施例提供的转换插件来执行,该转换插件可采用软件和/或硬件方式实现,该方法具体包括如下步骤:步骤110、获取原始SQL查询条件表达式;SQL语句中常用逻辑运算符AND和OR来连接多个查询条件表达式,在实际生产应用中,SQL语句的逻辑复杂且冗长,数据库中的记录需要同时满足一个或多个查询条件表达式才能返回给用户。此外,应用中编写的SQL语句,可能包含相同的查询条件表达式,如此多次重复执行相同的查询条件表达式会影响数据检索效率。针对这样的SQL语句,本专利技术通过提取出相同的查询条件表达式来简化逻辑运算,减少查询条件表达式的个数,以达到提高数据检索效率的目的。本实施例中,原始SQL查询条件表达式是由逻辑运算符AND和OR连接的多个查询条件表达式,原始SQL查询条件表达式中存在相同的查询条件表达式,此时,需要提取出这些相同的查询条件表达式,以减少查询条件表达式的个数,简化SQL语句表达式的逻辑运算。本实施例中所述的SQL语句可以是用户通过操作界面输入的SQL语句,也可以是获取的预存在数据库中的历史记录的SQL语句。步骤120、将所述原始SQL查询条件表达式按照第一预设规则等价转换生成目标SQL查询条件表达式;一实施例中,在SQL数据库中,创建学生表、课程表和学生选课表,并分别写入具体的学生表信息、课程表信息和学生选课表信息,对应的SQL语句如下所示:INSERTINTOStudentVALUES(201851801,'张三','女',20,'CS');INSERTINTOStudentVALUES(201851802,'李四','男',18,'CS');INSERTINTOStudentVALUES(201851803,'王五','女',19,'MA');INSERTINTOStudentVALUES(201851804,'刘六','男',20,'IS');INSERTINTOCourseVALUES(1,'数学',2);INSERTINTOCourseVALUES(2,'数学结构',4);INSERTINTOCourseVALUES(3,'数学库',4);INSERTINTOCourseVALUES(4,'操作系统',3);INSERTINTOStudent_CourseVALUES(201851801,1,96);INSERTINTOStudent_CourseVALUES(201851801,2,85);INSERTINTOStudent_CourseVALUES(201851802,2,90);INSERTINTOStudent_CourseVALUES(201851803,2,91);INSERTINTOStudent_CourseVALUES(201851803,3,80);COMMIT;该实施例中,查询计算机科学系(CS),选修了数学课程且成绩在90分以上的学生,或者选修了数据结构课程且成绩在90分以上的学生。对应的SQL语句如下:SELECTStudent.Sno,Sname,SdeptFromStudent,Course,Student_CourseWHEREStud本文档来自技高网...

【技术保护点】
1.一种逻辑运算的处理方法,其特征在于,包括:获取原始SQL查询条件表达式;将所述原始SQL查询条件表达式按照第一预设规则等价转换生成目标SQL查询条件表达式;存储或执行包含所述目标SQL查询条件表达式的SQL语句。

【技术特征摘要】
1.一种逻辑运算的处理方法,其特征在于,包括:获取原始SQL查询条件表达式;将所述原始SQL查询条件表达式按照第一预设规则等价转换生成目标SQL查询条件表达式;存储或执行包含所述目标SQL查询条件表达式的SQL语句。2.根据权利要求1所述的方法,其特征在于,所述第一预设规则包括等价转换前的第一预设SQL查询条件表达式和等价转换后的第二预设SQL查询条件表达式。3.根据权利要求1所述的方法,其特征在于,获取原始SQL查询条件表达式,包括:对SQL语句采用后根遍历递归解析,生成所述原始SQL查询条件表达式。4.根据权利要求3所述的方法,其特征在于,将所述原始SQL查询条件表达式按照第一预设规则等价转换生成目标SQL查询条件表达式,包括:在解析过程中,遍历所述原始SQL查询条件表达式,将所述原始SQL查询条件表达式中满足第一预设规则的查询条件表达式进行等价转换为所述目标SQL查询条件表达式;确认所述原始SQL查询条件表达式中不存在满足所述第一预设规则时,将等价转换后的SQL查询条件表达式作为所述目标SQL查询条件表达式。5.根据权利要求4所述的方法,其特征在于,在解析过程中,遍历所述原始SQL查询条件表达式,将所述原始SQL查询条件表达式中满足第一预设规则的查询条件表达式进行等价转换为所述目标SQL查询条件表达式,还包括:在解析过程中,遍历所述原始SQL查询条件表达式,并按照第二预设规则简化所述原始SQL查询条件表达式;将简化后的所述原始SQL查询条件表达式按照所述第一预设规则等价转换生成所述目标SQL查询条件表达式。6.根据权利要求2所述的方法,其特征在于,所述第一预设规则中的SQL查询条件表达式包括父运算符和由父运算符关联的两个或多个分支,所述父运算符为逻辑运算符AND或OR中的一种;所述分支为第一查询条件表达式或多个所述第一查询条件表达式通过逻辑运算符AND或OR连接的第二查询条件表达式中的一种,其中,所述第一查询条件表达式为逻辑比较运算表达式、范围确定运算表达...

【专利技术属性】
技术研发人员:望声宜朱仲颖万伟
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1