728x90
계층형 구조 = 상하 수직관계의 트리형태의 구조
계층형 쿼리 = 계층 구조가 적용된 데이터를 반환하는 질의어
* Oracle만 계층형 쿼리를 지원한다
명칭 | 설명 |
LEVEL | 각 계층 |
NODE | 각 데이터 |
ROOT | 가장 첫번째 노드 |
Parent Node | 노드의 상위 노드 |
Child Node | 노드의 자식 노드 |
Leaf | 가장 아래 노드 |
1. START WITH 구문
- 계층의 루트로 사용될 행을 지정한다. 어떤 행을 최상위로 할 지 결정한다.
- 서브 쿼리 가능
2. CONNECT BY
- 연결고리를 만든다.
- PRIOR 연산자로 계층구조를 표현할 수 있다.
- PRIOR 자식 = 부모 (순방향)
- 이전 LEVEL의 자식컬럼값이, 현재 행의 부모컬럼과 동일한 값이면 현재행에서 이전 LEVEL의 +1 을 세팅
- PRIOR 부모 = 자식 (역방향)
- PRIOR 자식 = 부모 (순방향)
- 서브 쿼리 사용 불가
3. LEVEL
- 계층 구조 쿼리의 결과 DEPTH를 표현해준다.
- 계층형 쿼리에만 존재하는 컬럼이다.
SELECT 부서번호, 상위부서번호, 부서이름, level, LPAD(' ', 5*(LEVEL-1))||부서이름 AS 계층
FROM DEPT
START WITH 상위부서번호 IS NULL
CONNECT BY PRIOR 부서번호 = 상위부서번호
728x90
'△ > SQLD' 카테고리의 다른 글
SQLD 문제풀이 14 - 집계함수 (0) | 2023.06.04 |
---|---|
SQLD 문제 풀이 13 (0) | 2023.06.03 |
SQLD 문제 풀이 12 (1) | 2023.06.01 |
SQLD 문제 풀이 11 (1) | 2023.05.30 |
SQLD 문제 풀이 10 (0) | 2023.05.30 |
댓글