1 .一种数据库查询语句的处理方法,包括:
获取所述数据库查询语句;
判断所述数据库查询语句中是否存在符合预设条件的目标子查询,所述目标子查询为
NOT IN关键词所连接的语句,所述预设条件为所述目标子查询中存在相关子查询;
在所述数据库查询语句符合所述预设条件的情况下,将所述数据库查询语句转换为目
标反半连接语句;
由所述数据库中的执行器根据所述目标反半连接语句完成查询操作,从而得到所述数
据库查询语句对应的查询结果。
2 .根据权利要求1所述的数据库查询语句的处理方法,其中,
所述将所述数据库查询语句转换为目标反半连接语句的步骤包括:
确定所述数据库查询语句中的内表和外表,所述内表为所述数据库查询语句的子查询
中的数据表,所述外表为所述数据库查询语句的主查询中的数据表;
将所述数据库查询语句中的所述目标子查询转换为目标反半连接,并保留所述数据库
查询语句中的剩余条件作为所述目标反半连接语句的过滤条件,从而得到所述目标反半连
接语句,其中所述反半连接的连接条件为所述内表的内表目标列与所述外表的外表目标列
相等。
3 .根据权利要求2所述的数据库查询语句的处理方法,其中,
所述由所述数据库中的执行器根据所述目标反半连接语句完成后续查询操作的步骤
包括:
对所述数据库查询语句进行解析,得到解析结果;
通过所述数据库中的优化器根据所述解析结果确定所述数据库查询语句对应的连接
方式;
在所述执行器中根据所述连接方式以及所述目标反半连接语句完成所述查询操作。
4 .根据权利要求3所述的数据库查询语句的处理方法,其中,
所述连接方式包括嵌套循环连接;
所述在所述执行器中根据所述连接方式以及所述目标反半连接语句完成所述查询操
作的步骤包括:
在所述连接方式为所述嵌套循环连接的情况下,判断所述内表中的内表元组数据是否
为空;
在所述内表元组数据为空的情况下,返回所述外表中的全部外表元组数据,从而完成
所述查询操作;
在所述内表元组数据不为空的情况下,获取一条所述外表元组数据作为本轮查询操作
中所用到的目标外表元组数据;
将所述目标外表元组数据代入所述过滤条件中,并判断所述内表元组数据中是否存在
符合所述过滤条件的NULL值;
在所述内表元组数据中存在符合所述过滤条件的NULL值的情况下,停止本轮查询,并
读取下一条所述外表元组数据作为所述目标外表元组数据执行所述将所述目标外表元组
数据代入所述过滤条件中的步骤;
在所述内表元组数据中不存在符合所述过滤条件的NULL值的情况下,判断所述目标外
权 利 要 求 书
1/3 页
2
评论