>데이터 베이스 >Oracle >ORACLE 트리 구조 쿼리를 분석한 기사 1개

ORACLE 트리 구조 쿼리를 분석한 기사 1개

WBOY
WBOY앞으로
2022-09-05 17:48:242591검색

이 기사는 Oracle에 대한 관련 지식을 제공합니다. 주로 ORACLE 트리 구조 쿼리에 대한 기사를 소개하며, 자세한 내용을 함께 살펴보겠습니다. 모든 사람.

ORACLE 트리 구조 쿼리를 분석한 기사 1개

추천 튜토리얼: "Oracle Video Tutorial"

일상 프로그래밍에서 우리는 조직, 행정 부서 등과 같은 트리 구조의 표현을 자주 접하게 됩니다. 이는 데이터베이스의 테이블을 통해 표시되는 경우가 많습니다. 여기서는 간단한 행정 구역 테이블을 예로 들어 보겠습니다. 실제 사용 시에는 여기에 다른 설명 필드와 수준을 추가할 수 있습니다.

테이블은 ID 및 PID와 연결되어 트리 구조 저장을 구현합니다. 테이블 생성 및 데이터 설명은 다음과 같습니다.

-- Create table
create table TREETEST
(
  id   NVARCHAR2(50),
  pid  NVARCHAR2(50),
  name NVARCHAR2(50)
)
insert into TREETEST (ID, PID, NAME) values ('1', null, '山东省');
insert into TREETEST (ID, PID, NAME) values ('2', '1', '青岛市');
insert into TREETEST (ID, PID, NAME) values ('3', '1', '烟台市');
insert into TREETEST (ID, PID, NAME) values ('4', null, '河南省');
insert into TREETEST (ID, PID, NAME) values ('5', null, '河北省');
insert into TREETEST (ID, PID, NAME) values ('6', '2', '市南区');
insert into TREETEST (ID, PID, NAME) values ('7', '2', '市北区');
insert into TREETEST (ID, PID, NAME) values ('8', '2', '即墨市');

트리 구조를 쿼리하는 방법은 무엇입니까? Oracle은 쿼리에 대한 재귀 쿼리를 제공합니다.

SELECT [Column]…..
  FEOM [Table]
  WHERE Conditional1
  START WITH Conditional2
  CONNECT BY PRIOR Conditional3
  ORDER BY [Column]

설명:

  • 조건 1---필터 조건, 반환된 모든 레코드를 필터링합니다.
  • 조건 2---루트 노드의 제한 조건 물론 여러 루트 노드, 즉 여러 트리를 얻기 위해 권한을 완화할 수도 있습니다.
  • 조건 3---링크 조건, 목적. 이 관계를 기반으로 재귀 쿼리를 수행합니다(위 표의 ID=PID)
  • Sort---반환된 모든 레코드 정렬

아래의 구체적인 예를 살펴보겠습니다.

1. Shandong 성 아래의 모든 하위 노드를 쿼리합니다.

SELECT *
  FROM TREETEST t
 START WITH t.PID=1
CONNECT BY PRIOR t.ID = t.PID

ID가 1인 노드는 Shandong Province 노드입니다. 칭다오시 레벨 하위 노드 (위와는 다름, 모든 하위 노드와 다음 레벨 하위 노드)

3. 표시하기 위해 칭다오시, 산동성 등을 연결해야 하는 경우 , SYS_CONNECT_BY_PATH를 사용하여

SELECT t.ID, SYS_CONNECT_BY_PATH(t.NAME, '\') AS INDU_NAME
  FROM TREETEST t
 START WITH t.PID IS NULL
CONNECT BY PRIOR t.ID = t.PID

ORACLE 트리 구조 쿼리를 분석한 기사 1개 쿼리 결과는 다음과 같습니다.

4 같은 방식으로 아래에서 위로 쿼리할 수도 있습니다

SELECT *
  FROM TREETEST t
 START WITH t.ID=8
CONNECT BY t.ID = PRIOR t.PID

추천 튜토리얼 : "Oracle 비디오 튜토리얼"

위 내용은 ORACLE 트리 구조 쿼리를 분석한 기사 1개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제