[发明专利]数据库查询语句的修改方法、装置、设备和存储介质有效
申请号: | 201910917565.9 | 申请日: | 2019-09-26 |
公开(公告)号: | CN110704437B | 公开(公告)日: | 2022-05-20 |
发明(设计)人: | 周智伟;韩朱忠 | 申请(专利权)人: | 上海达梦数据库有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242;G06F16/2453 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 查询 语句 修改 方法 装置 设备 存储 介质 | ||
1.一种数据库查询语句的修改方法,其特征在于,包括:
获取用户输入的查询语句,其中,所述查询语句包含目标列的第一查询条件表达式;
获取所述目标列的索引表达式;
当确定在数据查询过程中无法使用所述目标列的索引时,将所述第一查询条件表达式修改为第二查询条件表达式,其中,所述第二查询条件表达式中的第一子表达式与所述索引表达式相同,所述第一子表达式为所述第二查询条件表达式中表示大小关系符号左侧的表达式;
在所述将所述第一查询条件表达式修改为第二查询条件表达式之前,还包括:
根据所述第一查询条件表达式,计算所述目标列的取值范围;
根据所述目标列的取值范围和所述索引表达式,确定所述第二查询条件表达式;
所述根据所述目标列的值和所述索引表达式,确定所述第二查询条件表达式,包括:
将所述目标列的取值范围代入所述索引表达式中,得到所述索引表达式的取值范围;
合并所述索引表达式和所述索引表达式的取值范围,得到所述第二查询条件表达式。
2.根据权利要求1所述的方法,其特征在于,当所述查询语句包含目标列的第三查询条件表达式,且所述第三查询条件表达式中不包含表示大小关系符号时,在所述获取所述目标列的索引表达式之前,还包括:
对所述第三查询条件表达式进行分割,得到多个子查询条件表达式,并将每个子查询条件表达式作为所述第一查询条件表达式。
3.根据权利要求2所述的方法,其特征在于,所述对所述第三查询条件表达式进行分割,得到多个子查询条件表达式,包括:
利用和and对所述第三查询条件表达式进行分割,得到通过and连接的多个子查询条件表达式;或者,
利用或or对所述第三查询条件表达式进行分割,得到通过or连接的多个子查询条件表达式。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述确定在数据查询过程中无法使用所述目标列的索引,包括:
将所述第一查询条件表达式中的第二子表达式与所述索引表达式进行比对,其中,所述第二子表达式为所述第一查询条件表达式中表示大小关系符号左侧的表达式;
当所述第二子表达式与所述索引表达式不相同时,确定在数据查询过程中无法使用所述目标列的索引。
5.根据权利要求1至3中任一项所述的方法,其特征在于,当所述索引表达式为多个时,所述确定在数据查询过程中无法使用所述目标列的索引,包括:
将所述第一查询条件表达式中的第二子表达式分别与每个所述索引表达式进行比对,其中,所述第二子表达式为所述第一查询条件表达式中表示大小关系符号左侧的表达式;
当所述第二子表达式与每个所述索引表达式均不相同时,确定在数据查询过程中无法使用所述目标列的索引。
6.一种数据库查询语句的修改装置,其特征在于,包括:
第一获取模块,用于获取用户输入的查询语句,其中,所述查询语句包含目标列的第一查询条件表达式;
第二获取模块,用于获取所述目标列的索引表达式;
处理模块,用于当确定在数据查询过程中无法使用所述目标列的索引时,将所述第一查询条件表达式修改为第二查询条件表达式,其中,所述第二查询条件表达式中的第一子表达式与所述索引表达式相同,所述第一子表达式为所述第二查询条件表达式中表示大小关系符号左侧的表达式;
计算模块,用于在所述处理模块将所述第一查询条件表达式修改为第二查询条件表达式之前,根据所述第一查询条件表达式,计算所述目标列的取值范围;
确定模块,用于根据所述目标列的取值范围和所述索引表达式,确定所述第二查询条件表达式;
确定模块,具体用于将所述目标列的取值范围代入所述索引表达式中,得到所述索引表达式的取值范围;合并所述索引表达式和所述索引表达式的取值范围,得到所述第二查询条件表达式。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910917565.9/1.html,转载请声明来源钻瓜专利网。