본문 바로가기
프로그래밍 공부 정리/database

View의 장단점, View와 Table의 차이

by 메기사랑 2021. 11. 29.

**뷰의 장점과 단점

==> 복잡한 검색을 뷰를 이용하면 간편하게 사용할 수 있어요.
==> 보안유지상 사용별로 접근권한을 다르게 설정할 수 있어요.

==> 사용자별로 접근권한을  다르게 설정하여 관리하는 것이 번거로울 수 있어요
==> 뷰의 종류에 따라 with read only, with check option의 등의 설정및 관리 필요하다.

ex)
1) 판매가격이 20000원 이상인 도서의 도서번호, 도서이름, 고객이름, 출판사, 판매가격을 보여주는 
highorders 뷰를 생성하시오.

create view highorders as 
select b.bookid, bookname, name, publisher, saleprice
from book b, customer c, orders o
where b.bookid = o.bookid and 
c.custid = o.custid and
saleprice >= 20000;

2) 생성한 뷰를 이용하여 판매된 도서의 이름과 고객의 이름을 출력하는 sql을 작성하시오.

select bookname, name from highorders;


3) highorders뷰를 변경하고자 한다. 판매가격 속성을 삭제하는 명령을 수행하시오.  삭제후
2번 sql을 다시 실행하시오.

alter view highorders drop column saleprice;



** 테이블의 칼럼 삭제

alter table customer100 drop column phone;

==> view는 실제로 존재하는 테이블이 아니기 때문에 
alter명령어로 수정할 수 없어요.
수정하려면
view삭제한 후 
다시 원하는대로 view를 생성 해 줍니다.


** 뷰를 삭제하기

drop view 뷰이름

 

drop view highorders;
create view highorders as 
select b.bookid, bookname, name, publisher
from book b, customer c, orders o
where b.bookid = o.bookid and 
c.custid = o.custid and
saleprice >= 20000;

select bookname, name from highorders;



**뷰를 수정하기

create or replace view 뷰이름
as
select ~

==> 뷰이름이 없으면 생성해주고
   있으면 수정 해 줍니다.
   
   

create or replace view highorders as 
select b.bookid, bookname, name, publisher, saleprice
from book b, customer c, orders o
where b.bookid = o.bookid and 
c.custid = o.custid and
saleprice >= 30000;



'프로그래밍 공부 정리 > database' 카테고리의 다른 글

PL/SQL: trigger  (0) 2021.12.01
PL/SQL: procedure(프로시저)  (0) 2021.11.30
Index(인덱스)  (0) 2021.11.28
View(뷰), System View(시스템 뷰)  (0) 2021.11.27
시퀀스(sequence), 다중행 연산자  (0) 2021.11.26