create view [view-name] as [query expression]
모든 유저가 전체 db 모델을 모든 것이 적절하지 않을 때 사용됨
query expression의 저장 용도
집계 함수는 반드시 별칭을 작성 해 주어야 한다. 그렇지 않으면 이런 에러를 만나게 된다.
CREATE VIEW salcal as
SELECT
MIN(sal),
MAX(sal),
round(AVG(sal))
FROM
emp
GROUP BY
deptno;
오류 보고 -
ORA-00998: 이 식은 열의 별명과 함께 지정해야 합니다00000 - "must name this expression with a column alias"
Cause:
Action:
올바른 코드 예
CREATE VIEW salstat_deptno AS
SELECT
deptno 부서,
MIN(sal) AS 최소급여,
MAX(sal) AS 최대급여,
round(AVG(sal)) 평균급여
FROM
emp
where deptno is not null
GROUP BY
deptno;
view를 사용해 기존의 테이블을 업데이트 하려면 튜플의 필드를 모두 써줘야 한다.
그렇지 않으면 이런 오류를 만나게 된다.
INSERT INTO v_30 VALUES (
8000,
'사원',
3000
)
오류 보고 -
SQL 오류: ORA-00947: 값의 수가 충분하지 않습니다
00947. 00000 - "not enough values"
Cause:
Action:
그렇다면 결국 원본 테이블의 구조를 뷰에 모두 넘겨주어야 하는 거 아닌가?
view를 생성하는 이유가 사라지는 거 아닌가? 싶었는데
Trigger를 사용하면 원본 테이블 구조를 보여주지 않고 view를 넘겨줄 수 있다고 한다.