자격증/SQLD
계층형 질의
닉네임생각즁
2024. 3. 2. 12:27
START WITH~
- 계층 구조 시작점
- 루트 노드
- 계층 구조의 시작 LEVEL은 "1", 자식노드 한 층이 이동할 때 마다 값이 1씩 증가
리프 노드 (leaf node)
- 끝에 위치하여 자식노드를 가지지 않음
형제 노드
- 같은 LEVEL
CONNECY BY~
- 상하 계층이 이루어지는 조건
NOCYCLE
- 계속 반복해서 사이클이 생기는 경우가 있는데, 이런 경우 런타임 오류가 일어남
→ NOCYCLE 키워드를 입력하여 1사이클만 생성되도록 할 수 있음
- <> 표시는 option
PRIOR
- CONNECT BY PRIOR 자식컬럼 = 부모컬럼 → 부모에서 자식으로 트리 그리기 : 순방향전개
- CONNECT BY 부모컬럼 = PRIOR 자식컬럼 → 부모에서 자식으로 트리 그리기 : 순방향전개
- PRIOR 키워드는 SELECT 이나 WHERE 에도 사용 가능
- 현재 읽은 행의 컬럼을 지정
ex) CONNECT BY COL1 = PRIOR COL2;
현재 해당하는 컬럼이 3번째 컬럼이라면 3번째 컬럼의 COL2와 같은 값을 가진 COL1을 연결
⭐⭐
계층형 질의를 통해 3 - 1 - 4 - 2 컬럼 순으로 연결되었을때 만약 WHERE 조건으로 인해 1이 제외되어야한다면?
- 뒤에 이어진 4와 2도 제외되는가? NO!!
- 3 4 2 출력됨