VIEW 개요
- 다른 테이블이나 뷰에 포함된 맞춤표현(virtual table)
- join 하는 테이블의 수가 늘어나거나 질의문이 길고 복잡해지면 작성이 어려워지고 유지보수가 어려울 수 있다
- 이럴 때는 스크립트를 만들어두거나 stored query를 사용해서 데이터베이스 서버에 저장해두면 필요할 때마다 호출해서 사용할 수 있다
- 뷰와 테이블의 차이 : 뷰는 실제로 데이터를 저장하고 있지 않다
- 베이스테이블(Base table) : 뷰를 통해 보여지는 실제테이블
- 선택적인 정보만 제공 가능
VIEW 형식
create [or replace][force|noforce] view 뷰이름 [(alias [,alias,... ..)]
as 서브쿼리
[with check option [constraint 제약조건이름]]
[with read only [constraint 제약조건이름]]
create [or replace] | 지정한 이름의 뷰가 없으면 새로 생성, 동일이름이 있으면 수정 |
force|noforce | force : 베이스테이블이 존재하는 경우에만 뷰 생성가능 noforce : 베이스테이블이 존재하지 않아도 뷰 생성가능 |
alias | 뷰에서 생성할 표현식 이름(테이블의 컬럼 이름의미) 생략하면 서브쿼리의 이름 적용 alias의 개수는 서브쿼리의 개수와 동일해야 함 |
서브쿼리 | 뷰에서 표현하는 데이터를 생성하는 select구문 |
제약조건 |
VIEW - 인라인(inline) 개념
별칭을 사용하는 서브쿼리 (일반적으로 from절에서 사용)
VIEW - Top N 분석
Top N분석 : 조건에 맞는 최상위(최하위) 레코드를 N개 식별해야 하는 경우에 사용
예)
- 최상위 소득자3명
- 최근 6개월동안 가장 많이 팔린 제품3가지
- 실적이 가장 좋은 영업사원 5명
- 오라클에서 Top N분석원리
- 원하는 순서대로 정렬
- rownum 이라는 가상의 컬럼을 이용하여 순서대로 순번부여
- 부여된 순번을 이용하여 필요한 수만큼 식별
- rownum값으로 특정행을 선택할수 없음
- (단, Result Set 1st 행(rownum=1)은 선택가능)
⚒️ VIEW 예제