VIEW → 하나의 테이블에서 필요한 컬럼만 가져와서 하나의 테이블로 만들 수 있다 → 여러개의 테이블에서 필요한 컬럼만 가져와서 하나의 테이블로 만들 수 있다(복합뷰)
뷰 만들기→ 단순 뷰(Simple View) CREATE VIEW V_EMP1 -- 뷰 만들때 보통 언더바 섞어서 씀 AS SELECT EMPNO , ENAME , HIREDATE FROM EMP;
→복합뷰(Complex View) CREATE VIEW V_EMP2 AS select e.ENAME , d.DNAME from emp e, dept d WHERE e.DEPTNO = d.DEPTNO;
→인라인 뷰(Inline View) SELECT e.deptno , d.DNAME , E.SAL FROM( -- inline view(인라인 뷰) SELECT DEPTNO , MAX(SAL) SAL FROM emp GROUP BY DEPTNO ) e, dept d where e.deptno = d.deptno;
학과별 가장 큰 키 학생들의 이름와 키 출력 (인라인뷰) student 테이블과 department 테이블을 사용하여 학과이름, 학과별 최대키, 학과별로 가장 키가 큰 학생들의 이름과 키를 Inline View를 사용하여 출력
SELECT D.DNAME
, A.MAX_HEIGHT
, S.NAME
, S.HEIGHT
FROM (
SELECT DEPTNO1
, MAX(HEIGHT) MAX_HEIGHT
FROM STUDENT
GROUP BY DEPTNO1
) A,STUDENT S, department D
WHERE S.DEPTNO1 = A.DEPTNO1
AND S.HEIGHT = A.MAX_HEIGHT
AND S.DEPTNO1 = D.DEPTNO;
학생 테이블에서 동일 학년의 평균키보다 큰 학생들 출력(인라인뷰) Studnet 테이블에서 학생의 키가 동일 학년의 평균 키보다 큰 학생들의 학년과 이름과 키, 해당 학년의 평균 키를 출력하되 Inline View 를 사용해서 아래와 같이 출력하세요.(학년 컬럼으로 오름차순 정렬해서 출력하세요)
SELECT S.GRADE
, S.NAME
, S.HEIGHT
, A.AVG_HEIGHT
FROM(
SELECT AVG(HEIGHT) AVG_HEIGHT
, GRADE
FROM STUDENT
GROUP BY GRADE
)A, STUDENT S
WHERE S.GRADE = A.GRADE
AND S.HEIGHT > A.AVG_HEIGHT
ORDER BY 1;