DevSSOM

SQL - 계층형 질의 본문

DataBase

SQL - 계층형 질의

데브쏨 2021. 9. 5. 20:20
반응형

계층형 데이터

동일 테이블에 계층적으로 상위와 하위 데이터가 포함되어 있는 데이터.

 

 

이해하기 쉽게 샘플 데이터 먼저 보기. 샘플 데이터를 계층형 구조로 나타내보면, D와 E의 관리자인 C, B와 C의 관리자인 A가 있음. 그러면, D와 E보다는 C가, B와 C보다는 A가 더 상위데이터가 되는 것임. 이렇게 하나의 테이블 안에서 컬럼들이 서로 순환적으로 이루어져 있기 때문에 순환관계 데이터 모델이라고 하고, 이런 데이터를 계층형 데이터라고 함.

 

 

계층형 질의

테이블에 계층형 데이터가 존재하는 경우, 데이터를 조회하기 위해 사용하는 것. 계층형 데이터를 조금 더 보기 편하게 출력하기 위해서 쓴다고 생각하면 됨.

SELECT LEVEL, 자식 컬럼, 부모 컬럼, 원하는 컬럼
FROM 테이블명
START WITH 부모 컬럼 IS NULL              /* 부모 컬럼이 NULL인 행이 Root(가장 상위)가 됨 */
CONNECT BY PRIOR 자식 컬럼 = 부모 컬럼;   /* 상위 데이터와 하위 데이터의 연결 방식 */
  • LEVEL : 검색 항목의 깊이를 의미. 위에서부터 몇 번째 데이터인지 숫자로 나타낸 것
  • START WITH : 어떤 데이터가 최상위 데이터가 될 것인지 기준을 잡아주는 것
  • CONNECT BY : 상위 데이터와 하위 데이터를 어떻게 연결시켜 줄 거냐? 자식 컬럼과 부모 컬럼의 관계를 정의

 

728x90
반응형
댓글