[오라클] 복합 뷰 ( Complex VIEW )

복합 뷰

여러 개의 테이블을 한번에 참조 할 수 있는 뷰

복합 뷰를 사용하면 TABLE1,TABLE2의 원하는 컬럼 부분만 JOIN해서 사용 할 수 있음

생성 문법은 서브 쿼리 부분에 join을 사용하는 것 말고는 단일 뷰와같음

 

 

복합 뷰 생성예제

 

1.TABLE1 ( 학과 ) , TABLE2 ( 학생 ) 테이블 두개를 JOIN해서 복합 뷰 생성

2. 학과테이블에서 학과이름, 학생테이블에서 학생이름과 학년 세가지 컬럼을 합쳐 하나의 뷰로 만들기


테이블구조

VIEW생성 결과

코드
-----학과 테이블 생성 및 값 넣기 ------
create table department(
dept_name NVARCHAR2(20),
subject NVARCHAR2(20),
semester NVARCHAR2(10));

insert into department values('컴퓨터공학과','컴퓨터의개념','1학년');
insert into department values('컴퓨터공학과','C언어','2학년');
insert into department values('컴퓨터공학과','JAVA','3학년');

insert into department values('건축학과','건축학개론','1학년');
insert into department values('건축학과','건축설계기초','2학년');
insert into department values('건축학과','건충공학입문설계','3학년');

insert into department values('실용음악과','화성학','1학년');
insert into department values('실용음악과','시창청음','2학년');
insert into department values('실용음악과','전자음악','3학년');


----학생 테이블 생성 및 값 넣기 ------
create table student(
dept_name NVARCHAR2(20),
name NVARCHAR2(10),
grade NVARCHAR2(10));


insert into student values('컴퓨터공학과','김짱구','1학년');
insert into student values('컴퓨터공학과','이철수','1학년');
insert into student values('컴퓨터공학과','최유리','2학년');
insert into student values('컴퓨터공학과','박맹구','3학년');

insert into student values('건축학과','이제훈','1학년');
insert into student values('건축학과','배수지','1학년');
insert into student values('건축학과','조정석','1학년');

insert into student values('실용음악과','신용재','1학년');
insert into student values('실용음악과','김종국','2학년');
insert into student values('실용음악과','오반','3학년');

 

//복합 뷰 생성
create view cv_computer as
SELECT distinct d.dept_name, s.name, s.grade
from department d, student s
where d.dept_name = s.dept_name
and d.dept_name = '컴퓨터공학과';

 

 

FROM : [ 테이블1 이름 ] [테이블1 별칭] , [테이블2 이름] [테이블2 별칭] 

WHERE : JOIN 문법

AND : 조건 

SELECT : 뷰에 보이고 싶은 컬럼들 작성  ( FROM에서 별칭 지정해준것을 앞에 놓고 점 (.) 을 찍고 뒤에 컬럼명을 적는다)

DISTINCT : 중복 제거

 

삭제하는 방법, 조회하는 방법은 단일 뷰와 같다.

댓글

Designed by JB FACTORY