블로그 이름

[ORACLE] 계층형 쿼리 사용법 본문

개발/Database

[ORACLE] 계층형 쿼리 사용법

Hide 2025. 4. 28. 22:45

계층형 쿼리란?

부모, 자식 간의 수직관계를 트리 구조 형태로 보여주는 쿼리이다. 

START WITH : 트리 구조의 최상위 행을 지정한다.

CONNECT BY : 부모, 자식의 관계를 지정한다.

PRIOR : CONNECT BY  절에 사용되며 PRIOR에 지정된 컬럼이 맞은편 컬럼을 찾아간다.

CONNECT BY PRIOR 자식 컬럼 = 부모 컬럼 : 부모 -> 자식 순 전개

CONENCT BY PRIOR 부모 = 자식 : 자식 -> 부모 역방향 전개

ORDER SIBLINGS : 계층형 쿼리에서 정렬 수행


부모행을 시작으로 자식을 찾는 순방향 전개 계층형 쿼리 예제

SELECT deptName

FROM depts

START WITH parentName = 'a'

CONNECT BY deptName  = parentName;

첫번째 최상위 부모 행을 찾아 자식이 없을 때까지 찾아 들어간 뒤, 두번쨰 최상위 부모 행의 자식을 탐색한다.

 

계층형 쿼리는 부서별 계층 관계, 품목 설계도, 부품 간 계층관계 등 여러 로직에 활용하는데에 사용된다.