반응형

 

 

1. 뷰(View) 란?

기존 테이블로부터 생성(정의)되는 가상의 테이블

- 기반 테이블들에 대한 하나의 질의문(query)으로 정의된다.

( but 실제로 질의를 실행하는 것은 아님 ! 질의 그 자체가 뷰임. 물리적인 저장공간 없음)

- 뷰는 기반 테이블과 동등하게 사용된다.

 

< 기능 >

- 특정 사용자에게 테이블 내용 중 일부를 숨길 수 있기 때문에 데이터에 대한 접근 제한과 보안성을 높일 수 있다.

- 질의의 결과를 뷰로 만들어서 사용하면 복잡한 질의를 간단히 표현할 수 있다.

 

 

 

 

2. 뷰 생성 방법

 

 

- <SELECT문> : 뷰 생성에 사용될 질의문

- OR REPLACE 를 추가하면 <뷰이름> 과 같은 뷰가 이미 존재하는 경우, 기존의 뷰를 삭제하고 새로 생성한다.

 

 

 

 

 

3. 뷰 생성 권한

: 대부분의 DBMS에서 일반 사용자 계정에서는 뷰 생성 권한이 없다.

: 관리자가 특정 사용자에게 권한을 부여해야 뷰를 생성할 수 있다.

 

 

 

 

 

 

 

 

4. 직접 실습해보기

- SQLDevelper 에서 실습해 보기로 하자

 

1) localhost(관리자 계정) 에서 scott(사용자 계정)으로 뷰 생성 권한을 부여한다.

 

 

 

 

 

2) V_TAKES 라는 이름의 뷰 생성하기

 

 

 

참고) TAKES 테이블은 이렇게 생겼다.

 

 

 

 

 

3) v_takes 뷰를 이용하여 특정 학번의 학생 정보를 검색

 

 

 

 

질의결과)

 

 

 

5) INSERT문도 실행시켜보기

 

 

 

실행결과)

 

 

 

 

Q) 원래 TAKES 테이블에도 값이 추가가 될까?

A) Yes! 추가되지 않은 GRADE 열의 값은 null 이 들어간다. 아래 결과 확인

 

 

 

 

 

 

 

 

5. 읽기 전용 뷰

: INSERT, DELETE, UPDATE 와 같은 데이터 조작 언어(DML)의 사용을 막고 싶을 때에는 

WITH READ ONLY 키워드를 추가해준다. (SELECT 는 가능)

 

 

 

 

 

 

 

 

6. 뷰 삭제

 

 

 

7. 실습해보기 두번째

 

- 컴퓨터공학과 학생들의 정보만 추출하여 뷰를 생성한다.

 

 

** 문제발생) 기본키인 dept_id 가 select 되지 않았기 때문에 insert문을 실행시킬 수 없다.

 

 

 

 

 

 

 

반응형

+ Recent posts