List

토요일, 12월 26, 2015

SQL 계층구조 쿼리(Hierarchical Queries)


  • 상위 계층과 하위계층의 관계를 오라클에서는 START WITH와 CONNECT BY를 이용해서 쉽게 조회 할 수 있다.



계층구조 쿼리 Synctax

START WITH

  • 계층 질의의 루트(부모행)로 사용될 행을 지정 한다.
  • 서브쿼리를 사용할 수도 있다.
CONNECT BY

  •  이 절을 이용하여 계층 질의에서 상위계층(부모행)과 하위계층(자식행)의 관계를 규정 할 수 있다.
  •  PRIOR 연산자와 함께 사용하여 계층구조로 표현할 수 있다.
  •  CONNECT BY PRIOR 자식컬럼 = 부모컬럼 : 부모에서 자식으로 트리구성 (Top Down)
  •  CONNECT BY PRIOR 부모컬럼 = 자식컬럼 : 자식에서 부모로 트리 구성 (Bottom Up)
  •  CONNECT BY NOCYCLE PRIOR : NOCYCLE 파라미터를 이용하여 무한루프 방지
  •  서브쿼리를 사용할 수 없다.
LEVEL Pseudocolumn

  •  LEVEL은 계층구조 쿼리에서 수행결과의 Depth를 표현하는 의사컬럼이다.
ORDER SIBLINGS BY

  • ORDER SIBLINGS BY절을 사용하면 계층구조 쿼리에서 편하게 정렬작업을 할 수 있다.
CONNECT BY의 실행순서는 다음과 같다.
  • 첫째 START WITH 
  • 둘째 CONNECT BY 
  • 세째 WHERE 절 순서로 풀리게 되어있다.

 * PRIOR 연산자 : 상위행의 컬럼임을 나타낸다. CONNECT BY 절에서 상하위간의 관계를 기술할때 사용. *

댓글 없음:

댓글 쓰기