SQL递归(高分,急).

来源:百度知道 编辑:UC知道 时间:2024/05/27 06:30:46
图中的表的PKId为主键,ParentId为外键,实现自我关联,这样就是递归是吗?
我搞不懂这样自我关联有什么好处,起什么作用?
谁给讲解一下。

这个估计PKId是ParentId的父节点吧
给你举个例子,就只用这两个字段吧,其他的也没多大用
PKId ParentId
1 0
2 0
3 1
4 2
5 1

假设数据是我上边这样的
可以假设每个PKId分别为商品大类,就把1的定义为软件吧,2定义为硬件,3为硬盘,4为ps软件,5为主板

这样的话,你就能看出对应关系了吧?
1和2是最高层的,所以无父节点,所以ParentId为0
3和5都是硬件,所以归属为1
4为软件,所以归属为2
这样的好处是减少多次读取其他表里的无用信息,在一定程度上可以提高效率,当然是指数据量大的时候,数据量小的时候基本没什么区别
作用你自己都说了,其实就是实现自我关联

但是这样有一点不好,在自身有主键外键,如果其中的逻辑关系弄的不太清楚的话,很容易出问题,简单来说就是这样了

这样有好处的,比如可以用来实现树状的论坛,主题帖子的ParentId为0,每一个回帖的ParentID为其回复的帖子(不一定都是主题)的PkId,这样的数据结构简单,程序功能强大(比如实现的论坛就不是简单的板状),使用也方便,比如要搜索的时候,不用在两个表里面查询。

用法介绍和操作手册如果你是完全安装的话,会一起安装到你的计算机上,那个介绍的非常全,比市面上任何一本书都全,叫“联机丛书”。从语法到控制台操作都有讲解步骤和实例的。
是这样的:(我这里以ORACLE9i为例)
1):如果你的ORACLE服务器端是装在另外一台电脑(服务器上),而客户端是装在自己的电脑上;那么你在自己电脑上安装PL/SQL Developer之后,每次登录都会弹出PL/SQL Developer登录框,要求你输入:
用户名:________ //登录服务器端数据库的用户名
口令:_______ //登录服务器端数据库的密码
数据库:________ //服务器端数据库的名称
连接为:Normal
至少