오라클 복합 뷰(Oracle Complex View)
복합 뷰complex view는 BASE TABLE이 하나 이상이고 조인, 함수, GROUP BY절이 포함될 수 있으며 INSERT/UPDATE/DELETE와 같은 DML 작업은 허용되지 않습니다.
EMP 테이블과 DEPT 테이블을 조인하여 복합 뷰를 생성하고 삭제하는 실습을 해보겠습니다.
뷰를 삭제해 보겠습니다.
실습
EMP, DEPT 두 테이블을 조인한 복합 뷰를 생성합니다.
EMP 테이블과 DEPT 테이블을 조인하여 10번 부서 사원들의 사번(empno), 이름(ename), 직무(job), 부서명(dname)을 정의하는 v_emp10 이라는 이름의 복합뷰를 작성 하시오. (사번, 이름, 직무 컬럼은 EMP 테이블에 있고 부서명 컬럼은 DEPT 테이블에 존재합니다.) |
CREATE OR REPLACE VIEW V_EMP10
AS
SELECT EMPNO, ENAME, JOB, DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = 10
AND EMP.DEPTNO = DEPT.DEPTNO;
<실행결과>
View V_EMP10이(가) 생성되었습니다.
생성한 V_EMP10 뷰를 조회 합니다.
V_EMP10 뷰의 데이터를 확인 하세요. |
SELECT * FROM V_EMP10;
<실행결과>
| EMPNO | ENAME | JOB | DNAME |
1 | 7782 | CLARK | MANAGER | ACCOUNTING |
2 | 7934 | MILLER | CLERK | ACCOUNTING |
EMP 테이블에서 집합함수(SUM, MAX, MIN, AVG, COUNT), GROUP BY를 이용하여 복합 뷰를 생성해 보겠습니다.. 함수를 이용하여 뷰를 생성하는 경우 반드시 칼럼 별명을 사용해야 합니다
EMP 테이블에서 부서별 평균 급여와 급여의 합을 가지는 복합뷰 V_EMP_SUM_AVG를 생성 하세요 |
CREATE OR REPLACE VIEW V_EMP_SUM_AVG
AS
SELECT DEPTNO, AVG(SAL), SUM(SAL)
FROM EMP
GROUP BY DEPTNO;
<실행결과>
ORA-00998: 이 식은 열의 별명과 함께 지정해야 합니다.
AVG, SUM 함수를 사용했으므로 컬럼 별칭column alias을 사용해서 뷰의 컬럼명을 정의해야 합니다.
컬럼 별명을 사용해서 다시 생성해 보겠습니다.
EMP 테이블에서 부서별 평균 급여와 급여의 합을 가지는 복합뷰 V_EMP_SUM_AVG를 생성 하세요 |
CREATE OR REPLACE VIEW V_EMP_SUM_AVG
AS
SELECT DEPTNO, AVG(SAL) AVG, SUM(SAL) SUM
FROM EMP
GROUP BY DEPTNO;
<실행결과>
View V_EMP_SUM_AVG이(가) 생성되었습니다.
#복합뷰, #오라클뷰, #오라클, #ORACLE, #ComplexView, #오라클강의