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

WBOY
풀어 주다: 2022-09-05 17:48:24
앞으로
2582명이 탐색했습니다.

이 기사는 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿