[관련]내부로직순서 및 예시
https://rise-up.tistory.com/722
계층형 구조(Hierarchical Structure)
부모와 자식 간의 관계를 깊이로 구분하여 표현하는 것으로 상하 수직관계의 트리형태의 구조
보통 카테고리를 분류나 조직도에 많이 사용
용어
노드(node) : 위 그림에서 원모양으로 표시된 항목. 각각의 품목이 하나의 노드가 되며 실제 테이블에서는 하나의 로우가 노드
부모(parent) : 부모노드라고도 하며, 트리구조에서 상위에 있는 노드를 의미
자식(child) : 자식노드라고도 하며, 위 그림에서 '모니터'는 컴퓨터의 자식노드이며, 컴퓨터는 모니터와 본체의 부모노드임
리프(leaf) : 리프노드하며, 더이상 하위에 연결된 노드가 없는 최하위 항목을 의미. 즉 자식노드가 없는 노드 (ex : 모니터, 프린터, 랜카드)
루트(root) : 계층형, 트리구조에서 최상위에 있는 노드(ex: 컴퓨터)
레벨(level) : 트리구조에서의 각각의 계층을 의미
루트인 컴퓨터가 1레벨, 순차적으로 그 하위에 있는 모니터, 본체, 프린터가 2레벨, 그 아래가 메인보드, 랜카드가 3레벨이자 리프(leaf)
수행순서
1. START WITH 절에 시작 조건을 찾습니다.
2. CONNECT BY 절에 연결조건을 찾습니다.
START WITH
어떤 레코드를 최상위로 잡을지 지정
계층 구조 전개의 시작 위치를 지정하는 구문
CONNECT BY
부모,자식 관계를 지정
다음에 전개될 자식 데이터를 지정하는 구문
자식 데이터는 CONNECT BY절에 주어진 조건을 만족해야 한다.(조인)
PRIOR
‘이전’이라는 의미
위의 start with에서 정한 계층구조 시작위치 구문에서 나온 row에서의 값과 PRIOR에 기준점으로 잡은 컬럼과 같은 값을 추출한다
CONNECT BY절에 사용되며, 현재 읽은 칼럼을 지정
PRIOR 자식 = 부모 형태를 사용하면,
계층구조에서 자식 데이터에서 부모 데이터(자식 → 부모) 방향으로 전개하는 순방향 전개
PRIOR 부모 = 자식 형태를 사용하면,
반대로 부모 데이터에서 자식 데이터(부모 → 자식) 방향으로 전개하는 역방향 전개
자료출처
https://www.youtube.com/watch?v=boNut__USIU&list=PLyQR2NzLKOCZU_jjLAdebyx9oE9dvvsrE&index=10
'SQL > Oracle' 카테고리의 다른 글
[SQL][Oracle] JOIN에 AND조건과 JOIN+WHERE절에 AND조건 어떻게 다를까? (1) | 2022.10.05 |
---|---|
[SQL][Oracle] 계층형 질의(계층형 쿼리, Hierarchical Query) 동작순서 with 예시 (0) | 2022.08.26 |
[SQL][Oracle] SELECT, DISTINCT, 별칭, 리터럴, 비교연산자 (0) | 2022.03.12 |
[SQL][Oracle] ESCAPE 식별자, IS NULL, IN, 연결연산자 || (0) | 2022.03.12 |
[SQL][Oracle] 논리연산자, BETWEEN, LIKE , 와일드카드 (0) | 2022.03.12 |