728x90
계층형 쿼리
테이블의 레코드들이 부모, 자식 관계(상하 관계)를 이룰 때, 레코드를 수직적 구조로 가져오기 위해 사용되는 SQL
1) START WITH ... CONNECT BY 절
SELECT [컬럼]
FROM [테이블]
START WITH [최상위 조건]
CONNECT BY [NOCYCLE][PRIOR 계층형 구조 조건];
- START WITH
계층 구조 전개의 시작위치[부모(루트) 노드] 지정.
→ 루트 노드의 LEVEL 값은 1.
- CONNECT BY
부모와 자식노드들 간의 관계 명시.
CONNECT BY 실행 순서
START WITH → CONNECT BY → WHERE
- PRIOR
- CONNECT BY PRIOR 자식 = 부모: 부모 → 자식으로 전개하는 순방향 전개.
- CONNECT BY PRIOR 부모 = 자식: 자식→ 부모로 전개하는 역방향 전개.
- CONNECT BY NOCYCLE PRIOR: NOCYCLE 파라미터를 이용한 무한 루프 방지.
- CONNECT BY 절에서만 사용되는 것은 아니다. SELECT, WHERE 절에서도 사용할 수 있다.
2) ORDER SIBLINGS BY
형제 노드(동일 LEVEL) 사이에서 정렬 수행.
728x90
반응형
'데이터베이스 > 데이터베이스 공부' 카테고리의 다른 글
절차형 SQL (PL/SQL, 저장 모듈, 프로시저, 사용자 정의 함수, 트리거) (0) | 2022.08.28 |
---|---|
SELF JOIN(셀프 조인, 셀프 조인 개념, 셀프 조인 표현식) (0) | 2022.08.27 |
SQL CONSTRAINT 절(CONSTRAINT, 단일필드 제약조건, 다중필드 제약조건) (0) | 2022.08.26 |
순수 관계 연산자(SELECT, PROJECT, JOIN, DIVIDE) (0) | 2022.08.23 |
조인(Join)의 종류(내부 조인, 왼쪽 조인, 오른쪽 조인, 합집합 조인) (0) | 2022.08.23 |