\
뷰의 개념
1. 하나 이상의 테이블이나 다른 뷰의 테이터를 볼수 잇게 하는 데이터베이스 객체.
2..뷰를 가상테이블이라고도 부르는데, 뷰는 테이블과 거의 흡사하게 사용하기 때문이다.
3.뷰는 실제 데이터가 저장되는 것은 아니지만 뷰를 통해 데이터를 관리 할수있다.
VIEW를 가상테이블이라고 하는이유
뷰는 데이터를 물리적으로 가지고 있지 않다.
뷰의 사용용도는 테이블과 동일하지만, 데이터 저장 공간이 없다,
뷰는 단지 쿼리문을 저장하고 있는 객체라고 표현할 수 있겟다.
VIEW의 사용목적
직접적인 테이블 엑세스를 제한하기 위해서
복잡한 질의를 쉽게 만들기 위해서 사용된다.
VIEW의 생성 ( 명령어)
CREATE OR REPLACE VIEW
● CREATE VIEW 는 뷰의 구조 변경시 삭제후 재생성해야됨
● CREATE OR REPLACE VIEW 기존뷰가 있어도 삭제 하지 않고 새로운
구조로 변경 가능.
◎FORCE : 기본 테이블 의 존재여부를 따지지않고 뷰 생성.
◎WITH CHECK OPTION : 해당 뷰의 범위내에서만 DML 문 가능
◎WITH READ ONLY : DML 문 불가, SELECT 만 가능
※뷰 생성시 권한으로 인해 에러 발생시
GRANT CREATE VIEW TO 사용자명
시스템으로 로그린하여 사용자에게 권한을 준다
VIEW의 조회
뷰(가상테이블)의 조회도 일반적인 테이블 처럼 SELECT문을 사용한다.
뷰의 정보를 살펴보면 테이블처럼 디스크( 기억공간)에 물리적으로 테이터가 저장되어 있지 않고, 뷰를 정의할 떼 작성한 SELECT문만 볼수있는걸 알수있다.
동작 원리
1.사용자가 뷰에 대해서 질의를 하면 UESER_VIEWS에서 뷰에 대한 정의를 조회 한다
2.기본 테이블에 대한 뷰의 접근 권한을 조회한다.
3.뷰에 대한 질의를 기보테이블에 대한 질의 변환된다.
4.기본테이블에 대한 질의를 통해 테이터를 검색한다
5.검색된 결과를 보여준다
뷰의 정의에 있어서 사용되는 테이블수에 따라 두가지로 나뉜다.
종류 | simple-View | complex-view |
데이블수 | 1개 | 2개이상 |
그룹함수 | 사용가능 | 사용불가능 |
DISTINCT | 사용불가능 | 사용가능 |
DML문 | 사용가능 | 사용불가능 |
<뷰만들기>
ex) create view [뷰이름] as
select [칼럼] [칼럼] [칼럼] //내가 볼 칼럼 ( 항목만) ex) 부서,
from [테이블]
where [ ]=30; //
<워크시트에서> 만들어 진 뷰 보기
slect view_ name ,text
from user_views;
뷰삭제
drop view [뷰이름)
수정
create or replace view
존재하지 않은 뷰이면 새로은 뷰생성하고
기본에 존재하면 내용을 변경한다
기존태이블 없이 뷰 생성
강제
create or replace force view force_view
as
select empno, ename
from emp2
where depton=30;
쓰는 이유 뷰를 먼저 만들어 놓고 나중에 테이블을 만들는 경유 사용 한다
나중에 태이블은 만들면 활성화 된다.
저의 블로그 봐주셔서 감사합니다
재.미.있.게 보셧다면 아래 하트 ❤(공감) 과 댓글 부탁 드려요 .
[SQL] PARTITION TABLE(파티션 데이블) 필요성 (0) | 2018.04.20 |
---|---|
[SQL]SCHEMA(스키마) 개념 스키마 / 내부 스키마 (0) | 2018.04.20 |
[OracleSQLDeveloper] SQL 파일 데이터 엑셀 파일로 저장하기(익스포트)export to excel (0) | 2018.04.20 |
[sql]데이터 베이스JOIN(조인)의 필요성 (0) | 2018.04.20 |
[SQL]관계형 데이터 베이스 데이터의 무결성 (0) | 2018.04.19 |