Oracle start with ... connect by prior 用法
语法:
select *
from 表名
where 条件1
start with 条件2
connect by prior 当前表字段=级联表字段
start with与connect by prior语句完成递归记录,形成一棵树形结构,通常可以在具有层次结构的表中使用。
start with表示开始的记录
connect by prior 指定与当前记录关联时的字段关系
代码:
--创建部门表,这是一个具有层次结构的表,子记录通过parent_id与父记录的id进行关联
create table DEPT(
ID NUMBER(9) PRIMARY KEY, --部门ID
NAME VARCHAR2(100), --部门名称
PARENT_ID NUMBER(9) --父级部门ID,通过此字段与上级部门关联
);
向表中插入如下数据,为了使代码简单,一个部门仅具有一个下级部门
●从根节点开始查询递归的记录
select *
from dept
start with id=1
connect by prior id = parent_id;
下面是查询结果,start with id=1表示从id=1的记录开始查询,向叶子的方向递归,递归条件是id=parent_id,当前记录的id等于子记录的parent_id
●从叶子节点开始查询递归的记录
select *
from dept
start with id=5
connect by prior parent_id = id;
下面是查询结果,递归条件按照当前记录的parent_id等与父记录的id
●对查询结果过滤
select *
from dept
where name like '%销售%'
start with id=1
connect by prior id = parent_id;
在下面的查询结果中可以看到,首先使用start with... connect by prior查询出树形的结构,然后where条件才生效,对全部查询结果进行过滤
●prior的作用
prior关键字表示不进行递归查询,仅查询出满足id=1的记录,下面是将第一个查询去掉prior关键字后结果
select *
from dept
start with id=1
connect by prior id = parent_id;
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
Oracle最新认证题库资料下载
Actualtests Oracle 1Z0-200 V11.07.08
Actualtests Oracle 1Z0-211 V11.10.08
Actualtests Oracle 1Z0-212 V11.07.08
Actualtests Oracle 1Z0-213 V11.07.08
Actualtests Oracle 1Z0-101 V11.07.08
Actualtests Oracle 1Z0-132 V11.07.08
Actualtests Oracle 1Z0-140 V11.21.08
Actual ......
默认情况下,在Oracle的主机上(linux系统)的Oracle操作系统用户下,以sys用户登陆数据库时可以不用输入密码直接登录。实际上,只要是属于dba组(linux)或osdba组(windows)下,都可以不用密码进行登录。这是认证方式称为OS认证。
这种登录方式的控制,是通过$ORACLE_HOME/network/admin/sqlnet.ora中的:
SQLNET.AUTH ......
Oracle数据库在使用过程中,随着数据的增加数据库文件也逐渐增加,在达到一定大小后有可能会造成硬盘空间不足;那么这时我们可以把数据库文件移动到另一个大的硬盘分区中。下面我就以Oracle for Windows版本中把C盘的数据库文件移动到D盘为例介绍Oracle数据库文件移动的方法和步骤。
1.在sqlplus中连接到要移动文件的Or ......
聚集(cluster)是存储表数据的可选择的方法。一个聚集是一组表,将具有同一公共列值的行存储在一起,并且它们经常一起使用。这些公共列构成聚集码。
经常被同时访问的表在物理位置上可以存储在一起。为了将它们存储在一起,就要创建一个簇( c l u s t e r )来管理这些表。表中的数据一起存储在簇中,从而最小化必须执行的I ......