`
- 浏览:
130729 次
- 性别:
- 来自:
上海
-
基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(t-sql语言实现)
CREATE FUNCTION f_subtree(@dpcode varchar(9)) /*树型结构数据,求某结点下的的子树所有结点的自定义函数*/
RETURNS @new table([dpcode] [varchar] (9) , --结点编码
[dpname] [varchar] (20) , --结点名称
[dpcode_p] [varchar] (9) --此结点的父结点编码
) AS
BEGIN
declare @temp table([dpcode] [varchar] (9) , --结点编码
[dpname] [varchar] (20) , --结点名称
[dpcode_p] [varchar] (9) --此结点的父结点编码
) --数据临时存放表
declare @t table([dpcode] [varchar] (9) , --结点编码
[dpname] [varchar] (20) , --结点名称
[dpcode_p] [varchar] (9) --此结点的父结点编码
) --中间临时表
declare @tt table([dpcode] [varchar] (9) , --结点编码
[dpname] [varchar] (20) , --结点名称
[dpcode_p] [varchar] (9) --此结点的父结点编码
) --中间交换临时表
delete @temp
delete @t
delete @tt
delete @new
insert into @temp select * from dpet
insert into @t select * from @temp where dpcode_p=@dpcode
insert into @new select * from @t --结果临时表
while (exists(select * from @t where dpcode in (select dpcode_p from @temp)))
--当某层的结点全为叶子时,才停止循环
begin
insert into @tt select * from @t --中间交换临时表
delete @t
insert into @t select * from @temp where dpcode_p in
(select dpcode from @tt)
delete @tt
insert into @new select * from @t
end
insert into @new select * from @temp where dpcode=@dpcode
return
END
---------------------------------------------------(以下为存储过程实现)
CREATE TABLE dpet ( --树型结构数据的数据存放表结构
[dpcode] [varchar] (9) , --结点编码
[dpname] [varchar] (20) , --结点名称
[dpcode_p] [varchar] (9) --此结点的父结点编码
) ON [PRIMARY]
/*ms sql 2000调试通过,表temp,t,new,tt 结构与表dpet一致*/
CREATE PROCEDURE desc_dept(@dpcode varchar(9)) AS
--树型结构数据,求某结点下的的子树所有结点
truncate table temp
truncate table t
truncate table tt
truncate table new
insert into temp select * from dpet --数据临时存放表
insert into t select * from temp where dpcode_p=@dpcode --中间临时表
insert into new select * from t --结果临时表
while (exists(select * from t where dpcode in (select dpcode_p from temp)))
--当某层的结点全为叶子时,才停止循环
begin
insert into tt select * from t --中间交换临时表
truncate table t
insert into t select * from temp where dpcode_p in
(select dpcode from tt)
truncate table tt
insert into new select * from t
end
insert into new select * from temp where dpcode=@dpcode
GO
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Java递归树型结构通用数据库是指使用Java语言实现的递归树型结构数据库系统,该系统可以实现树型结构的部门管理,包括部门的添加、删除、修改和查询等操作。 知识点: 1. 递归树型结构数据库设计 在Java递归树型...
在Delphi编程环境中,数据库关联树型结构的生成与同步数据维护是开发高效数据库应用程序的重要环节。本资料主要探讨了如何在Windows XP操作系统下,利用Delphi 7进行相关操作。 首先,我们要理解数据库关联的概念。...
T-SQL语言中的递归查询是数据库编程中的一个重要功能,它允许开发者执行针对层级或树型结构数据的复杂查询,如组织架构、产品分类、家族族谱等。在传统的SQL Server 2000中,处理这种层级数据通常采用视图、临时表或...
### 一种基于Ajax的动态树型结构的设计与实现 #### 摘要 本文提出了一种新型的动态树型结构的实现方案,该方案利用了Yahoo用户界面库和Ajax(异步JavaScript和XML)技术。这种方法能够构建出结构清晰、具有良好...
构数据的快速加载方法, 通过一种改进的基于广度优先的算法, 将树型数据按照一定的层次和需要, 分散地加载于树型结构上, 从 而较好地解决了大数量的树型数据在网页上树型结构加载时效率低下、延迟较长的问题。该方法...
本文介绍的三种遍历树形数据结构的方法,包括直接使用主语言支持的递归算法、使用SQL Server的存储过程以及以临时表作为堆栈的方法,分别针对不同的应用场景和需求提供了有效的解决方案。 首先,树形数据结构(Tree...
树型结构算法树型结构算法树型结构算法树型结构算法
### 基于Ajax技术的树型结构目录的实现 #### 摘要与背景介绍 随着互联网技术的快速发展,树型结构作为一种重要的数据组织形式,其应用范围日益扩大。从传统的文件系统到复杂的数据库索引,乃至现代的网页导航栏...
数据库是存储和管理数据的系统,这里可能是指关系型数据库管理系统(RDBMS),如MySQL、Oracle或SQL Server等。数据库与Java结合,可以通过JDBC(Java Database Connectivity)API来实现。JDBC提供了一种标准接口,...
不过,可以基于标题所提示的主题“使用冗余数据设计树型关系的数据结构”来构建相关知识点。 冗余数据是数据库设计中的一个常见概念,指的是在数据存储时故意存储超出实际需要的数据。这样做可以增加数据库的查询...
MySQL是开源的关系型数据库管理系统,用于存储和管理树型结构的数据。开发者可能通过SQL语句查询数据库,获取需要展示的层次数据,然后将这些数据转换为JSON格式进行传输。 在学习这个例子时,你可以关注以下几个...
在IT领域,数据库通常用于存储和管理大量有组织的数据,而树型结构是数据库中一种常见且有效的数据表示形式。这种结构模拟了现实世界中事物的层级关系,非常适合用来表示目录、组织架构、文件系统等。本文将深入探讨...
本文将深入探讨如何实现一个树型控件,通过从数据库中读取数据并显示,同时提供右键菜单来实现添加、修改和删除功能。 树型控件是一种常见的UI组件,它以层次结构展示数据,类似于文件系统的目录结构。在Windows...
树型数据结构是计算机科学中的一种基本数据结构,它以递归的方式模拟了自然界中树木的结构,以节点为基本元素构成,节点间具有明确的父子关系。在树型结构中,递归算法的应用广泛且重要,它通过函数自我调用的方式,...
在科研管理系统中,基于AJAX技术的动态树型结构可以实现实时更新数据和交互性强的用户界面,提高了系统的响应速度和用户体验。同时,AJAX技术也可以降低服务器的负载,提高系统的可扩展性和可维护性。 本文还对科研...
在探讨“树型数据结构在铁路车站信号计算机联锁系统中的应用”这一主题时,我们首先需要了解树型数据结构的基本概念以及在铁路车站信号系统中的应用场景。树型数据结构是一类非线性数据结构,它的每一个节点可以有两...
在数据库管理中,树型结构是一种常见的数据组织方式,尤其在需要表达层级关系的场景下,如企业组织结构、网站导航结构、分类目录等。树型结构的数据库实现通常依赖于每个节点记录其父节点的引用(或称为指针),这样...
在Web应用中,树型结构常用于表示多层次的数据关系,如文件系统、组织架构图、产品分类等。当数据量庞大时,如何高效地加载和渲染这些树型结构成为了一个挑战。 #### 二、关键技术和策略 1. **虚拟滚动技术**:...
1. 树型数据结构在传统数据库系统中的局限性:在关系数据库中,如果要存储类似树型的数据结构,将需要创建多个二维表来代表各个节点之间的关系,这会导致系统维护复杂度上升,查询效率降低,且在修改如名称等字段时...