계층구조란?
부모, 자식 간의 수직관계를 트리 구조 형태로 보여주는 쿼리
1. START WITH 절
트리 구조의 최상위 행의 시작 위치 지정
ex. START WITH (테이블명) IS NULL // 시작위치 지정
* IS NULL : 상위를 IS NULL로 설정하면 해당 테이블이 최상위레벨이 된다
2. CONNECT BY 절
부모, 자식의 관계를 지정
하위 데이터 PRIOR 사용해서 지정
PRIOR
CONNECT BY절 사용되며 PRIOR에 지정된 컬럼이 맞은편 컬럼을 찾아감
01. CONNECT BY PRIOR 자식컬럼 = 부모컬럼
부모 → 자식 순방향 전개
상위 = PRIOR 하위
ex. connect by (부모테이블) = (자식테이블) //자식데이터 지정
02. CONNECT BY PRIOR 부모컬럼 = 자식컬럼
자식 → 부모 역방향 전개
하위 = PRIOR 상위
3. ORDER SIBLINGS 절
계층형 쿼리에서 정렬을 수행
계층구조를 그대로 유지하면서 동일 상위계층을 가진 하위계층 끼리
정렬기준을 준다.
즉, 걔층내에서 정렬 방법
*ORDER BY로 SORT 할 경우, 계층구조가 흐트러진다
ex. ORDER SIBLINGS BY (테이블명);
최상위 : 회사
개발부문
상위 : 회사
회사 : 개발부, 부서연구소
영업부문
상위 : 회사
히위 : 해외영업부, 국내영업부, 영업기획팀
출처
https://dev-cini.tistory.com/47 계층형쿼리 실습 예시 (참고★)
https://goldswan.tistory.com/36
'DB > SQL' 카테고리의 다른 글
[SQL] SQL 문법정리01_select/where/and,or,not/order by (0) | 2023.01.19 |
---|