STUDY/web

[Oracle] 뷰 정리

이앤지 2021. 11. 8. 19:54

 

뷰. 가상테이블

-- VIEW
-- 가상 테이블 : 물리적인 테이블의 select의 결과를 테이블로 사용
-- 1. 복잡한 sql(select)문을 간단히 사용하기 위해 
-- 2. 보안이 필요한 컬럼의 데이터를 보호하기 위해

-- create or replace view {뷰 이름}
-- as {sub query}

-- 자주 사용되는 30번 부서에 소속된 사원들의 
-- 사번과 이름과 부서번호를 출력하기 위한 
-- SELECT문을 하나의 뷰로 정의해 봅시다.

select empno, ename, deptno from emp where deptno=30;

-- View 생성
create or replace view emp_view30
as select empno, ename, deptno from emp where deptno=30;

-- 가상테이블 View 를 이용해서 질의
select * from emp_view30;

select text from user_views where view_name='EMP_VIEW30'; 

select empno, ename, deptno from emp where deptno=30;


-- view 삭제
drop view emp_view30;



select rownum, ename, hiredate from emp order by hiredate ;

select rownum, ename, hiredate 
from (select * from emp order by hiredate) -- 인라인뷰
;

select rownum, ename, hiredate 
from (select * from emp order by hiredate) -- 인라인뷰
where rownum <= 5
;

-- 급여액 top3
select rownum, ename, sal, job
from (select * from emp order by sal desc)
where rownum <= 3
;

-- 게시물의 리스트 
-- 회원 리스트 
-- 1 page = 10 => 1~10
-- 2 page = 10 => 11~20

-- 입사일 기준으로 정렬한 가상 테이블 
create or replace view emp_hir
as 
select * from emp order by hiredate
;

select rownum, ename, hiredate from emp_hir;

select rownum, ename, hiredate 
from emp_hir 
where rownum <=5;