SELECT ~
FROM 테이블
WHERE condition AND condition ~
**START WITH condition
CONNECT BY [NOCYCLE] condition AND condition ~
[ORDER SIBLINGS BY column, column, ~];**
**START WITH**
: 계층 구조 전개의 시작 위치 지정 → 루트 데이터 지정
**CONNECT BY**
: 다음에 전개될 자식 데이터 지정 → 자식 데이터는 주어진 조건을 만족해야함
**PRIOR**
: CONNECT BY
절에 사용, 현재 읽은 칼럼을 지정. → **PRIOR 자식=부모**
형태면 자식 데이터에서 부모 데이터 방향으로 전개하는 순방향 전개
**NOCYCLE**
: 데이터를 전개하면서 이미 나타났던 동일한 데이터를 전개하지 않음
ORDER SIBLINGS BY
: 형제 노드 사이에 정렬 수행
가상 칼럼 및 함수
SELECT **CONNECT_BY_ROOT 사원 루트사원, SYS_CONNECT_BY_PATH(사원, '/')** 경로, 사원, 관리자
FROM 사원 START WITH 관리자 IS NULL CONNECT BY PRIOR 사원 = 관리자;
SELECT LEVEV, LPAD(' ', 4 * (LEVEL - 1)) || 사원 사원, 관리자, CONNECT_BY_ISLEAF
**FROM 사원 START WITH 관리자 IS NULL CONNECT BY PRIOR 사원 = 관리자;**
SELECT LEVEL, LPAD(' ', 4 * (LEVEL - 1)) || 사원 사원, 관리자, CONNECT_BY_ISLEAF
**FROM 사원 START WITH 사원 = 'D' CONNECT BY PRIOR 관리자 = 사원;**
**UNION ALL**
로 쿼리 2개 결합 → 둘 중 위에 있는 쿼리를 앵커 멤버, 아래 쿼리를 재귀 멤버라고 함