- 테이블에서 각각의 데이트를 떼어 와 만들거나 다른 테이블들에서 특정 데이터만 모아 만든 것이 뷰
- 테이블에서 데이터에 변경이 생기면 뷰에서 이를 조회하는 것이 가능
- 보안의 측면과 퍼포먼스의 측면에서 뷰를 만들게 됨
- 보안의 측면에서 볼 때 위에서는 alex에게 emp테이블 조회 기능을 빼앗고 뷰에 있는 정보만 조회할 수 있게 함
- 여러 테이블에 조인을 많이 걸수록 퍼포먼스가 떨어지기 때문에 특정 데이터를 뷰에 모아놓으면 성능 향상
<예제>
- 뷰 생성 이전에 시스템 계정에서 스콧 계정에 뷰 생성 권한을 부여해야 함
- 이렇게 하면 뷰 생성이 가능
- 삭제 : drop view 뷰이름
- 저 뷰를 조회하면 해당 데이터들을 테이블에서 조회하는 것과 같은 결과가 출력
- 이렇게 테이블의 정보를 변경하고 뷰를 조회하면 변경된 데이터가 나타나게 됨
- 뷰는 테이블의 데이터 구조, 형식, 값을 그대로 따라감(테이블의 변화를 모두 따라가게 됨 - 추가, 삭제, 변경)
- 뷰를 변경하고 싶을 때는 드랍하고 새로 생성할 필요 없이 위와 같이 하면 뷰를 변경시킬 수 있음
- 뷰에서 인덱스를 생성하기 위해 위와같은 쿼리를 작성해서 실행하면 오류가 발생
- 뷰에서는 인덱스를 생성할 수 없음
<예제 - 복합 뷰(COMPLEX VIEW)>
- 2개 이상의 테이블을 조인시켜서 뷰를 만드는 것을 복합 뷰라고 함
<문제 - 인라인 뷰>
<문제>
<문제>
<문제>
- 인라인 뷰 안에 있는 내용에 큰따옴표 안쓰고 이름 지정해줘야 밖에서 사용 가능하더라
<문제>
- 위에 문제랑 순서는 좀 다른데 결과는 같음
<문제>
------
<문제>
------