정의
- 테이블처럼 사용하는 뷰
- 테이블에 대한 가상의 테이블로써 테이블처럼 직접 데이터를 소유하지 않고 검색 시에 이용할 수 있도록 정보를 담고 있는 객체 테이블 정보의 부분집합
사용목적
- 테이블에 대한 보안기능을 설정해야 하는 경우
- 복잡하고, 자주 사용하는 질의 SQL문을 보다 쉽고 간단하게 사용해야 하는 경우
java202207 계정에 대해서 뷰 생성 권한 부여
grant create view to java202207
뷰 생성 및 수정 형식
create or replace view 뷰이름 -> replace : 이미 존재하는 뷰의 내요을 수정함
as [SQL문]
뷰 삭제하기
drop view 뷰이름
테이블, 뷰 목록 확인
select * from tab; --모든 객체 종류 확인
select * from tab where tabtype='TABLE'; --테이블 목록
select * from tab where tabtype='VIEW'; --뷰 목록
뷰 생성해보기
예전에 생성했던 sungjuk 테이블에서 주소가 서울, 제주 지역의 이름, 국, 영, 수, 주소를 조회하여 뷰를 생성해보자
--주소가 서울, 제주 지역의 이름, 국, 영, 수, 주소를 조회하시오
select uname, kor, eng, mat, addr
from sungjuk
where addr in ('Seoul', 'Jeju');
--뷰 생성 (두 번째부터는 수정)
--형식) create or replace view 뷰이름 as [SQL문]
create or replace view test1_view
as
select uname, kor, eng, mat, addr
from sungjuk
where addr in ('Seoul', 'Jeju');
이렇게 생성된 뷰는 테이블처럼 사용이 가능하다.
문) 수강신청한 학생들의 학번, 총학점을 뷰로 생성하시오(test3_view)
g1001 14학점
g1002 8학점
g1005 12학점
g1006 3학점
create or replace view test3_view
as
select SU.hakno, sum(GW.ghakjum) || '학점' as 총학점
from tb_sugang SU join tb_gwamok GW
on SU.gcode=GW.gcode
group by SU.hakno;
--뷰와 학생테이블을 조인해서 학번, 이름, 총학점 출력하기
select tb_student.uname, test3_view.*
from tb_student join test3_view
on tb_student.hakno=test3_view.hakno
order by tb_student.hakno;
데이터 사전(user_views테이블)에서 뷰의 세부 정보 확인
select * from user_views;
select text from user_views where view_name='TEST1_VIEW';
'웹개발 교육 > Database' 카테고리의 다른 글
[25일] Database (16) - index (0) | 2022.08.30 |
---|---|
[25일] Database (15) - 프로시저 (0) | 2022.08.30 |
[25일] Database (13) - 계정 생성 (0) | 2022.08.30 |
[24일] Database (12) - CSV파일 변환 (0) | 2022.08.29 |
[24일] Database (11) - 종합연습문제 (0) | 2022.08.29 |