❶ 请高手解释一下Oracle的数据库树的功能是什么谢谢!
Oracle提供了大量索引结构,每种索引结构都有其好处和不足:
* B树索引。从最早的Oracle发行版本开始,Oracle就一直使用的标准树索引就是B树索引。
* 位图索引。当某个索引列含有很少数量的不同的值(即低基数)时,使用位图索引。这对于那些只读数据库而言速度超快,但对需要经常性更新的系统不适合。
* 位图连接索引。这是针对来自其他表的数据列出现在某个连接表的多列索引时使用的索引。下面是在from子句和where子句中使用类似SQL的创建索引的惟一语法。
❷ 三. 在数据库一表中设计一种表示树的方案;
create tablename
(parent_id varchar(100),
child_id varchar(100)
level varchar(10)
)
解释:parent_id 父ID,child_id子ID,level层级
如果需要添加别的属性也可以直接加进来
❸ 数据库表有3列,Id,Name,ParentId,已从数据库读出数据,如何递归成一棵树
数据库是什么数据库?
我先假设你是 Oracle 吧。
CREATE TABLE test_tree (
test_id INT NOT NULL,
pid INT,
test_val VARCHAR(10),
PRIMARY KEY (test_id)
);
INSERT INTO test_tree VALUES(1, NULL, '.NET');
INSERT INTO test_tree VALUES(2, 1, 'C#');
INSERT INTO test_tree VALUES(3, 1, 'J#');
INSERT INTO test_tree VALUES(4, 1, 'ASP.NET');
INSERT INTO test_tree VALUES(5, 1, 'VB.NET');
INSERT INTO test_tree VALUES(6, NULL, 'J2EE');
INSERT INTO test_tree VALUES(7, 6, 'EJB');
INSERT INTO test_tree VALUES(8, 6, 'Servlet');
INSERT INTO test_tree VALUES(9, 6, 'JSP');
INSERT INTO test_tree VALUES(10, NULL, 'Database');
INSERT INTO test_tree VALUES(11, 10, 'DB2');
INSERT INTO test_tree VALUES(12, 10, 'MySQL');
INSERT INTO test_tree VALUES(13, 10, 'Oracle');
INSERT INTO test_tree VALUES(14, 10, 'SQL Server');
INSERT INTO test_tree VALUES(15, 13, 'PL/SQL');
INSERT INTO test_tree VALUES(16, 15, 'Function');
INSERT INTO test_tree VALUES(17, 15, 'Procere');
INSERT INTO test_tree VALUES(18, 15, 'Package');
INSERT INTO test_tree VALUES(19, 15, 'Cursor');
INSERT INTO test_tree VALUES(20, 14, 'T-SQL');
使用 START WITH CONNECT BY 语句实现树状查询
通过根节点 向下查询子节点
SELECT
LPAD(' ', 2*(LEVEL-1)) || test_val AS test_val
FROM
test_tree
START WITH
test_id IN (1, 6, 10)
CONNECT BY PRIOR test_id = pid;
TEST_VAL
-----------------------------------------------------------
.NET
C#
J#
ASP.NET
VB.NET
J2EE
EJB
Servlet
JSP
Database
DB2
TEST_VAL
-----------------------------------------------------------
MySQL
Oracle
PL/SQL
Function
Procere
Package
Cursor
SQL Server
T-SQL
20 rows selected.
❹ 根据数据库表动态生成树一定要有id 和 pid吗
只要能实现父子关系的对应即可,你不用id,pid,可以把id里带着父id,如a,a1,a11...这样的层级关系,但是实际过程中处理,分析,特别是查询的时候要复杂一些
❺ 在数据库 如何实现多级树啊 表结构要怎么设置 比较好
在数据库中建立一张表,表中中有这几个字段:
id 当前层级的编号,
name 当前层级的文字表示,
parentid 当前层级的父层级id,
order 用于同一层级元素排序,也就是兄弟节点排序
layer 表示当前层级所处于的级别
目前我想到这几个字段。我想应该够了。当然,根据你的具体需求,可以增加一些字段,表示其他信息。