【技术实现步骤摘要】
层次查询的方法、装置、服务器及存储介质
本专利技术实施例涉及数据库技术,尤其涉及一种层次查询的方法、装置、服务器及存储介质。
技术介绍
层次查询是一种数据库查询功能,使用树的遍历方式得到树型结构的数据集合,来获取树的层次关系报表。层次查询对于处理具有树型结构的层次化数据非常方便,主要用于返回一个数据集,这个数据集存在树的关系。在数据库中进行层次查询时,对于每次进行查询用到查询条件时,都需要计算一次查询条件中的条件值,这样,对于选定的一行数据查询与该行数据具有层次关系的数据时,对于所有数据需要根据查询条件等号右侧的条件计算一次,再选定另一行数据查询与该行数据具有层次关系的数据时,还需要对所有数据根据查询条件等号右侧的条件重新计算一次,因此,对所有数据需要根据查询条件等号右侧的条件计算多次,导致查询效率较低。
技术实现思路
有鉴于此,本专利技术实施例提供一种层次查询的方法、装置、服务器及存储介质,以提高层次查询的效率。第一方面,本专利技术实施例提供了一种层次查询的方法,所述方法包括:S1、获取层次查询语句,并根据所述层次查询语句,确定待查询的表和查询条件;S2、根据所述查 ...
【技术保护点】
1.一种层次查询的方法,其特征在于,所述方法包括:S1、获取层次查询语句,并根据所述层次查询语句,确定待查询的表和查询条件;S2、根据所述查询条件,确定所述待查询的表中的数据的第二条件值,并保存数据和第二条件值的对应关系;S3、从所述待查询的表中获取一行数据,作为驱动行;S4、根据所述查询条件确定所述驱动行的第一条件值,根据所述对应关系,确定第二条件值与所述第一条件值满足所述查询条件的数据,压入堆栈中,并输出所述驱动行的数据;S5、将从堆栈中弹出的一行数据作为驱动行,并执行S4,直到堆栈中的数据处理完毕,返回执行S3,直到所述待查询的表中的所有数据全部处理完毕。
【技术特征摘要】
1.一种层次查询的方法,其特征在于,所述方法包括:S1、获取层次查询语句,并根据所述层次查询语句,确定待查询的表和查询条件;S2、根据所述查询条件,确定所述待查询的表中的数据的第二条件值,并保存数据和第二条件值的对应关系;S3、从所述待查询的表中获取一行数据,作为驱动行;S4、根据所述查询条件确定所述驱动行的第一条件值,根据所述对应关系,确定第二条件值与所述第一条件值满足所述查询条件的数据,压入堆栈中,并输出所述驱动行的数据;S5、将从堆栈中弹出的一行数据作为驱动行,并执行S4,直到堆栈中的数据处理完毕,返回执行S3,直到所述待查询的表中的所有数据全部处理完毕。2.根据权利要求1所述的方法,其特征在于,保存数据和第二条件值的对应关系包括:将所述数据和第二条件值的对应关系保存到哈希表中;根据所述对应关系,确定第二条件值与所述第一条件值满足所述查询条件的数据,压入堆栈中,并输出所述驱动行的数据包括:在所述哈希表中探测,确定第二条件值与所述第一条件值满足所述查询条件的数据,压入堆栈中,并输出所述驱动行的数据。3.根据权利要求2所述的方法,其特征在于,在从所述待查询的表中获取一行数据,作为驱动行之时,还包括:确定所述驱动行的层次值;在所述哈希表中探测,确定第二条件值与所述第一条件值满足所述查询条件的数据,压入堆栈中,并输出所述驱动行的数据,包括:在哈希表中探测,确定第二条件值与所述第一条件值满足所述查询条件的数据,并确定该数据的当前层次值为所述驱动行的层次值加一;将第二条件值与所述第一条件值满足所述查询条件的数据及对应的当前层次值压入堆栈中;输出所述驱动行的数据及对应的层次值。4.根据权利要求3所述的方法,其特征在于,所述哈希表包括层次字段,所述层次字段用于记录对应数据的层次值,初始值为0;将第二条件值与所述第一条件值满足所述查询条件的数据及对应的当前层次值压入堆栈中,包括:在当前层次值与所述哈希表中层次字段记录的层次值不同时,将哈希表中层次字段记录的层次值更新为所述当前层次值,将对应的满足查询条件的数据及对应的当前层次值压入堆栈中。5.根据权利要求1-4任一所述的方法,其特征在于,根据所述查询条件确定所述驱动行的第一条件值,在所述哈希表中探测,确定第二条件值与所述第一条件值相等的数据,压入堆栈中,包括...
【专利技术属性】
技术研发人员:张钦,张黎敏,
申请(专利权)人:上海达梦数据库有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。