728x90
★ 데이터베이스 객체
- 테이블
- 계정(hr)
- 제약사항
- 시퀀스
- 뷰
★ 뷰(View)
- 데이터베이스 객체 중 하나
- 가상 테이블, 뷰 테이블 등...
- 테이블처럼 사용한다.
- 뷰는 SQL을 저장한 객체이다.
- 뷰는 호출될때마다 저장된 SQL이 실행된다. (실시간 가상 테이블)
- 사용 양식
create view 뷰명
as
select문;
create [or replace] view 뷰명
as
select문;
★ 뷰의 역할(목적)
- 쿼리를 단순화한다. > 가독성 향상
- 보안 관리
- 쿼리 > 다른 사용자(hr 등)과 공유
■ 사용
- ex 1)
create or replace view vwInsa -- tblInsa 테이블의 복사본
as
select * from tblInsa;
select *
from vwInsa; -- tblInsa 처럼 행동
create or replace view vwInsa
as
select name, jikwi, city, buseo from tblInsa where buseo = '영업부';
select *
from vwInsa; -- 뷰 == 영업부 테이블
- ex2) 비디오 대여점 사장 > 반복 업무
create or replace view 대여체크
as
select
m.name as mname,
v.name as vname,
to_char(r.rentdate, 'yyyy-mm-dd') as rentdate,
case
when r.retdate is not null then '반납완료'
else '미반납'
end as state,
case
when r.retdate is null then round((sysdate - (r.rentdate + (select period from tblGenre where seq = v.genre))))
end as "연체날짜",
r.rentdate as "대여날짜",
(select period from tblGenre where seq = v.genre) as "대여기간(일)",
case
when r.retdate is null
then round((sysdate - (r.rentdate + (select period from tblGenre where seq = v.genre))) * g.price * 0.1)
end as "연체금" -- 대여가격(10%) x 연체일
from tblRent r
inner join tblVideo v
on v.seq = r.video
inner join tblMember m
on m.seq = r.member
inner join tblGenre g
on g.seq = v.genre
order by state asc;
select * from tblGenre;
select * from tblRent;
select * from tblVideo;
select sysdate - (r.rentdate + 3) from tblRent r;
select sysdate - (r.rentdate + (select priod from tblGenre where seq = )) from tblRent r;
select * from 대여체크;
- ex3) 뷰는 select문을 저장한 객체 > SQL 저장한 객체
- 뷰 사용 시 주의 할점!!!!
- 1. select > 실행 O > 뷰는 Only 읽기 전용이다. == 읽기 전용 테이블
- 2. insert > 실행 O > 절대 사용 금지
- 3. update > 실행 O > 절대 사용 금지
- 4. delete > 실행 O > 절대 사용 금지
create or replace view vwComedian
as
select * from tblComedian;
select* from tblComedian; -- 원본 테이블
select* from vwComedian; -- 복사 테이블
update tblComedian set weight = 70 where first = '재석';
select * from vwComedian; -- 재사용 목적
select * from (select * from tblComedian); -- from 서브쿼리 == 인라인 뷰 > 1회용
728x90
'데이터베이스' 카테고리의 다른 글
DATABASE STEP 24 - ALTER (0) | 2023.03.22 |
---|---|
DATABASE STEP 23 - UNION (0) | 2023.03.22 |
DATABASE STEP 21 - JOIN (2) | 2023.03.21 |
DATABASE STEP 20 - RDBMS&Foreign key (0) | 2023.03.21 |
DATABASE STEP 19 - SubQuery (0) | 2023.03.21 |