데이터베이스
계층적 질의문 21. 03. 12.
Levinni
2021. 3. 14. 23:47
계층적 질의문
- 관계형 데이터 베이스에서 데이터간의 부모 관계를 표현할 수 있는 칼럼을 지정하여 계층적인 관계를 표현
- 하나의 테이블에서 계층적인 구조를 표현하는 관계를 순환관계(recursive relationship)
- 계층적인 데이터를 저장한 칼럼으로부터 데이터를 검색하여 계층적으로 출력 기능 제공
-- 계층적 질의문을 사용하여 부서테이블에서 학과, 학부, 단과대학을 검색하여 단대,학부학과순으로 top-down 형식의 계층구조로 출력하여라. 단, 시작데이터는 10번부서이다.
SELECT DEPTNO, DNAME, COLLEGE
FROM DEPARTMENT
START WITH DEPTNO = 10
CONNECT BY PRIOR DEPTNO = COLLEGE;
-- 레벨별 구분. HR의 EMPLOYEES 테이블에서 작업
SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, MANAGER_ID, LEVEL
FROM HR.EMPLOYEES
START WITH EMPLOYEE_ID = 100
CONNECT BY PRIOR EMPLOYEE_ID = MANAGER_ID;
-- 계층적질의문을 사용하여 부서테이블에서 부서이름을 검색하여 단대, 학부, 학과순의 top-down 형식으로 출력하여라. 단, 시작 데이터는 ‘공과대학’이고, 각 레벨별로 우측으로 2칸 이동하여 출력하여라.
SELECT LPAD(' ', (LEVEL-1)*2) || DNAME 조직도
FROM DEPARTMENT
START WITH DNAME = '공과대학'
CONNECT BY PRIOR DEPTNO = COLLEGE;
--
SELECT * FROM (
SELECT EMPLOYEE_ID, LPAD(' ', (LEVEL-1) * 2) || FIRST_NAME || ' ' || LAST_NAME NAME, ROWNUM RN
FROM HR.EMPLOYEES
START WITH EMPLOYEE_ID = 100
CONNECT BY PRIOR EMPLOYEE_ID = MANAGER_ID
ORDER SIBLINGS BY employee_id DESC
)
WHERE RN <= 110 AND RN > 100; -- 11페이지 답글형 게시판