<View>
가상 테이블 : 물리적으로 메모리 할당이 없다. 테이블과 같이 조인 가능, from 구문에 기술할 수 있다.
DB 내 개별 사용자로 접속시 view 생성 권한이 처음에는 없다. 그래서 처음에 오류가 발생한다.
ㄴ 관리자 계정으로 개별 사용자에게 view 생성 권한을 받아야 함
ㄴ 관리자 계정에서 grant create view to 사용자 ; 라는 구문을 입력해줘야 함
1. 뷰 생성과 수정하기 (Create or Replace)
-- Quiz. 사원 테이블에서 사원번호, 사원이름, 직업 정보만 조회할 수 있는 view_emp 뷰 생성하기
(1) 뷰생성 (create는 뷰생성, replace는 존재하는 뷰를 수정하는 구문인데, create or replace로 보통 사용함)
create or replace view view_emp
as select empno, ename, job from emp ;
(2) 뷰조회
select * from view_emp;

-- Quiz. view_emp 뷰를 수정하기 emp 테이블에서 empno, ename, job 컬럼을 조회하기
-- 단, job의 값이 CLERK 정보만 조회되도록 view_emp 뷰를 생성하고 조회하기
(1) 뷰생성
create or replace view view_emp
as select empno, ename, job from emp where job = 'CLERK';
(2) 뷰조회
select * from view_emp;

2. 뷰 삭제하기 (Delete)
(1) 뷰삭제
delete from v_emp where empno = 7369;
(2) 원본 데이터도 삭제됨 -> 따라서 위험함
select * from emp where empno = 7369;

(3) Rollback 후 다시 조회

<복합뷰>
두 개 이상의 테이블을 참조하여 생성된 뷰
-- 교수 번호, 교수 이름, 소속 학과 명을 조회할 수 있는 v_prof_dept 뷰 생성하기
(1) 테이블 조회
select * from professor;
select * from department;


(2) 뷰 생성 (profno, name은 교수테이블에서, dname은 department 테이블에서 불러옴)
create or replace view v_prof_dept
as select p.profno, p.name, d.dname from professor p, department d
where p.deptno = d.deptno;
(3) 뷰 조회
select * from v_prof_dept;

'SQL' 카테고리의 다른 글
SQL [20] - PL/SQL (0) | 2021.05.10 |
---|---|
SQL [19] - Sequence (0) | 2021.05.10 |
SQL [17] - DDL(create, alter, drop, truncate)과 제약조건 (0) | 2021.05.09 |
SQL [16] - Delete (0) | 2021.05.05 |
SQL [15] - Update (0) | 2021.05.05 |