SQL_View & 계층형 쿼리

zooyeong·2023년 4월 21일
0

12주차

목록 보기
4/6
post-thumbnail

📌View란?

하나 이상의 기본 테이블이나 다른 뷰를 이용하여 생성되는 가상 테이블이다. 기본 테이블은 디스크에 공간이 할당되어 데이터를 저장하지만, 뷰는 데이터 딕셔너리 테이블에 뷰에 대한 정의만 저장되어 디스크저장 공간 할당이 이루어지지 않는다.

▼Inline View(인라인 뷰)

-> 노란색 박스 안이 인라인 뷰이다.

오류 발생!
-> 인라인 뷰 작성 시 'MAX(sal)' 컬럼은 별칭을 따로 지정해주지 않았기 때문에 컬럼명이 MAX(SAL)일 것이다. 그러므로 원래 emp 테이블의 'sal' 컬럼명으로는 데이터를 조회할 수 없다. 인라인 뷰의 MAX(sal)컬럼을 조회하기 위해선 별칭을 꼭 지정한 뒤 별칭으로 불러와야 한다.

📌계층형 쿼리(Hierarchy Query)란?

한 테이블에 레코드들이 계층관계를 이루며 존재할 때, 이 관계에 따라 레코드를 계층관계 구조로 가져올 때 사용되는 SQL문을 의미한다. 즉, 계층형 쿼리는 계층 관계를 나타내는 쿼리문을 말한다.

SELECT LPAD(ename, LEVEL*4, '*') ENAME
FROM emp
CONNECT BY PRIOR empno = mgr
START WITH empno = 7839;

계층형 쿼리의 실행 순서

  1. START WITH 절에 시작조건을 찾는다.
  2. CONNECT BY 절에 연결 조건을 찾는다.
  3. WHERE 절의 조건을 검색한다.

계층형 쿼리 작성 시 주의 사항

  1. CONNECT BY 절에는 Sub Query를 사용할 수 없다.
  2. 대량의 데이터가 있을 경우에 시간이 오래 걸릴 수 있으므로 START WITH절과 CONNECT BY절, WHERE절의 컬럼에는 반드시 인덱스가 적절히 설정되어야 한다.
  3. 부분범위 처리 기법을 계층형 쿼리에선 사용할 수 없다.
profile
Have a good day ⌯’▾’⌯

0개의 댓글