数据库的查询方法、装置、电子设备及存储介质制造方法及图纸

技术编号:37083828 阅读:17 留言:0更新日期:2023-03-29 19:59
本发明专利技术实施例涉及一种数据库的查询方法、装置、电子设备及存储介质,包括:接收建表语句,在数据库中创建对应的数据表,并在数据表中添加原始索引列的逆序列;针对逆序列重新创建数据表的数据表索引;在接收到针对所述数据表的数据查询语句,并确定数据查询语句应用第一匹配模式的情况下,对数据查询语句进行改造,得到应用第二匹配模式的目标数据查询语句,第一匹配模式与第二匹配模式对应的匹配顺序相反;基于目标数据查询语句和数据表索引对数据表执行查询操作。由此,可以实现在数据库索引不支持第一匹配模式,但支持第二匹配模式,以及数据查询语句应用第一匹配模式的情况下,依然能够利用索引实现数据的高效快速检索。索。索。

【技术实现步骤摘要】
数据库的查询方法、装置、电子设备及存储介质


[0001]本专利技术实施例涉及数据库领域,尤其涉及一种数据库的查询方法、装置、电子设备及存储介质。

技术介绍

[0002]索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引能够提高数据库查询速度。
[0003]然而,目前的数据库索引存在不支持某种匹配模式的情况。例如,数据库索引不支持右匹配模式。那么,在数据查询语句应用该种匹配模式时,将导致数据库索引对该数据查询语句失效,从而无法利用索引实现数据的高效快速检索。

技术实现思路

[0004]鉴于此,为解决上述的技术问题,本专利技术实施例提供一种数据库的查询方法、装置、电子设备及存储介质。
[0005]第一方面,本专利技术实施例提供一种数据库的查询方法,包括:
[0006]接收建表语句,在数据库中创建对应的数据表,并在所述数据表中添加所述数据表的原始索引列的逆序列,所述逆序列中包括所述原始索引列中每个列数据的逆序数据;
[0007]针对所述逆序列重新创建所述数据表的数据表索引;
[0008]在接收到针对所述数据表的数据查询语句,并确定所述数据查询语句应用第一匹配模式的情况下,对所述数据查询语句进行改造,得到目标数据查询语句,所述目标数据查询语句应用第二匹配模式,所述第一匹配模式与所述第二匹配模式对应的匹配顺序相反;
[0009]基于所述目标数据查询语句和所述数据表索引对所述数据表执行查询操作。
[0010]在一可能的实施方式中,所述在所述数据表中添加所述数据表的原始索引列的逆序列,包括:
[0011]针对所述数据表的原始索引列中的每个列数据,将所述列数据中的多个字符逆序排列,得到所述列数据对应的逆序数据;
[0012]将每个所述列数据对应的逆序数据组成所述原始索引列的逆序列,并将所述逆序列添加至所述数据表中。
[0013]在一可能的实施方式中,所述第一匹配模式为右匹配模式,所述第二匹配模式为左匹配模式;
[0014]或者,所述第一匹配模式为左匹配模式,所述第二匹配模式为右匹配模式。
[0015]在一可能的实施方式中,对所述数据查询语句进行改造,得到目标数据查询语句,包括:
[0016]从所述数据查询语句中解析出条件子句;
[0017]将所述条件子句中的多个字符逆序排列,得到逆序条件子句;
[0018]将所述数据查询语句中的条件子句修改为所述逆序条件子句,查询字段修改为所
述逆序列的列名,得到目标数据查询语句。
[0019]在一可能的实施方式中,在所述数据表中添加所述数据表的原始索引列的逆序列之前,所述方法还包括:
[0020]确定是否满足以下预设条件之一:
[0021]所述建表语句中携带指定配置标识,所述指定配置标识用于指示允许在所述数据表中添加原始索引列的逆序列;
[0022]所述数据表对应的会话变量指示允许在所述数据表中添加原始索引列的逆序列;
[0023]所述数据库的全局系统变量指示允许在任一数据表中添加原始索引列的逆序列;
[0024]在确定满足上述预设条件之一的情况下,执行所述在所述数据表中添加所述数据表的原始索引列的逆序列的步骤。
[0025]在一可能的实施方式中,在所述数据表中添加所述数据表的原始索引列的逆序列之后,所述方法还包括:
[0026]将所述逆序列设置为隐藏列。
[0027]第二方面,本专利技术实施例提供一种数据库的查询装置,包括:
[0028]建表模块,用于接收建表语句,在数据库中创建对应的数据表,并在所述数据表中添加所述数据表的原始索引列的逆序列,所述逆序列中包括所述原始索引列中每个列数据的逆序数据;
[0029]索引模块,用于针对所述逆序列重新创建所述数据表的数据表索引;
[0030]查询语句改造模块,用于在接收到针对所述数据表的数据查询语句,并确定所述数据查询语句应用第一匹配模式的情况下,对所述数据查询语句进行改造,得到目标数据查询语句,所述目标数据查询语句应用第二匹配模式,所述第一匹配模式与所述第二匹配模式对应的匹配顺序相反;
[0031]查询模块,用于基于所述目标数据查询语句和所述数据表索引对所述数据表执行查询操作。
[0032]在一可能的实施方式中,所述建表模块包括:
[0033]逆排列单元,用于针对所述数据表的原始索引列中的每个列数据,将所述列数据中的多个字符逆序排列,得到所述列数据对应的逆序数据;
[0034]列添加单元,用于将每个所述列数据对应的逆序数据组成所述原始索引列的逆序列,并将所述逆序列添加至所述数据表中。
[0035]在一可能的实施方式中,所述第一匹配模式为右匹配模式,所述第二匹配模式为左匹配模式;
[0036]或者,所述第一匹配模式为左匹配模式,所述第二匹配模式为右匹配模式。
[0037]在一可能的实施方式中,所述查询语句改造模块,包括:
[0038]条件解析单元,用于从所述数据查询语句中解析出条件子句;
[0039]逆排列单元,用于将所述条件子句中的多个字符逆序排列,得到逆序条件子句;
[0040]语句改造单元,用于将所述数据查询语句中的条件子句修改为所述逆序条件子句,查询字段修改为所述逆序列的列名,得到目标数据查询语句。
[0041]在一可能的实施方式中,所述建表模块还包括:
[0042]判定单元,用于确定是否满足以下预设条件之一:
[0043]所述建表语句中携带指定配置标识,所述指定配置标识用于指示允许在所述数据表中添加原始索引列的逆序列;
[0044]所述数据表对应的会话变量指示允许在所述数据表中添加原始索引列的逆序列;
[0045]所述数据库的全局系统变量指示允许在任一数据表中添加原始索引列的逆序列;
[0046]在确定满足上述预设条件之一的情况下,执行所述在所述数据表中添加所述数据表的原始索引列的逆序列的步骤。
[0047]在一可能的实施方式中,所述装置还包括:
[0048]隐藏设置模块,用于在所述数据表中添加所述数据表的原始索引列的逆序列之后,将所述逆序列设置为隐藏列。
[0049]第三方面,本专利技术实施例提供一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的数据库的查询程序,以实现第一方面中任一项所述的数据库的查询方法。
[0050]第四方面,本专利技术实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面中任一项所述的数据库的查询方法。
[0051]本专利技术实施例提供的技术方案,通过接收建表语句,在数据库中创建对应的数据表,并在数据表中添加数据表的原始索引列的逆序列,该逆序列中包括原始索引列中每个列数据的逆序数据,之后针对逆序列重新创建数据表的数据表索引;在接收到针对数据表的数据查询语句,并确定数据查询语句应用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库的查询方法,其特征在于,包括:接收建表语句,在数据库中创建对应的数据表,并在所述数据表中添加所述数据表的原始索引列的逆序列,所述逆序列中包括所述原始索引列中每个列数据的逆序数据;针对所述逆序列重新创建所述数据表的数据表索引;在接收到针对所述数据表的数据查询语句,并确定所述数据查询语句应用第一匹配模式的情况下,对所述数据查询语句进行改造,得到目标数据查询语句,所述目标数据查询语句应用第二匹配模式,所述第一匹配模式与所述第二匹配模式对应的匹配顺序相反;基于所述目标数据查询语句和所述数据表索引对所述数据表执行查询操作。2.根据权利要求1所述的方法,其特征在于,所述在所述数据表中添加所述数据表的原始索引列的逆序列,包括:针对所述数据表的原始索引列中的每个列数据,将所述列数据中的多个字符逆序排列,得到所述列数据对应的逆序数据;将每个所述列数据对应的逆序数据组成所述原始索引列的逆序列,并将所述逆序列添加至所述数据表中。3.根据权利要求1所述的方法,其特征在于,所述第一匹配模式为右匹配模式,所述第二匹配模式为左匹配模式;或者,所述第一匹配模式为左匹配模式,所述第二匹配模式为右匹配模式。4.根据权利要求1所述的方法,其特征在于,对所述数据查询语句进行改造,得到目标数据查询语句,包括:从所述数据查询语句中解析出条件子句;将所述条件子句中的多个字符逆序排列,得到逆序条件子句;将所述数据查询语句中的条件子句修改为所述逆序条件子句,查询字段修改为所述逆序列的列名,得到目标数据查询语句。5.根据权利要求1所述的方法,其特征在于,在所述数据表中添加所述数据表的原始索引列的逆序列之前,所述方法还包括:确定是否满足以下预设条件之一:所述建表语句中携带指定配置标识,所述指定配置标识用于指示允许在所述数据表中添加原始索引列的逆序列;所述数据表对应的会话变量指示允许在所述数据表中添加原始索引列...

【专利技术属性】
技术研发人员:熊家伟
申请(专利权)人:金篆信科有限责任公司
类型:发明
国别省市:

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

1