[오라클] 복합 뷰 ( Complex VIEW )
- DB/오라클
- 2020. 9. 14.
복합 뷰
▶ 여러 개의 테이블을 한번에 참조 할 수 있는 뷰
▶ 복합 뷰를 사용하면 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 : 중복 제거
삭제하는 방법, 조회하는 방법은 단일 뷰와 같다.
'DB > 오라클' 카테고리의 다른 글
[오라클] DDL #임시테이블 , 가상컬럼 (0) | 2020.09.14 |
---|---|
[오라클] 관계 ( KEY ) (0) | 2020.09.14 |
[오라클] ORDER BY로 정렬해서 출력하기 (오름차순, 내림차순) (0) | 2020.09.04 |
[오라클] 데이터 형식 (0) | 2020.09.01 |
[오라클] 트랜잭션 ( commit / rollback ) (0) | 2020.09.01 |