티스토리 뷰

Database/SQL 오라클

ORACLE -VIEW

Xion 2019. 9. 22. 22:19

뷰란?

  • - 뷰는 하나의 가상 테이블이라 생각 하면 된다.
  • - 뷰는 실제 데이터가 저장 되는 것은 아니지만 뷰를 통해 데이터를 관리 할수 있다.
  • - 뷰는 복잡한 Query를 통해 얻을 수 있는 결과를 간단한 Query로 얻을 수 있게 한다.
  • - 한 개의 뷰로 여러 테이블에 대한 데이터를 검색 할 수 있다.
  • - 특정 평가 기준에 따른 사용자 별로 다른 데이터를 액세스할 수 있도록 한다.

뷰의 제한 조건.

  • - 테이블에 NOT NULL로 만든 컬럼들이 뷰에 다 포함이 되 있어야 한다.
  • - ROWID, ROWNUM, NEXTVAL, CURRVAL등과 같은 가상컬럼에 대한 참조를 포함하고 있는 뷰에는 어떤 데이터도 INSERT 할 수 없다
  • - WITH READ ONLY 옵션을 설정한 뷰도 데이터를 갱신 할 수 없다.
  • - WITH CHECK OPTION을 설정한 뷰는 뷰의 조건에 해당되는 데이터만 삽입, 삭제,수정을 할 수 있다

뷰 문법

 

  • - FORCE : 기본 테이블 유무에 관계없이 VIEW를 생성
  • - WITH CHECK OPTION : VIEW에 의해 엑세스될 수 있는 행만이 입력되거나 변경될 수 있음을 지정
  • - WITH READ ONLY : SELECT만 가능한 VIEW 생성
  • - 함수를 사용한 컬럼은 반드시 ALIAS를 지정해야 한다.

--사용자 측면에서는 뷰가 INSERT,UPDATE되는것을 못 봄 ( 수정불가  )

   (하지만 , 사용자 측면이 아닌 리자 측면으로는 수정 및 데이터추가가 가능하다 ) (WITH CHECK OPTION 설정해주면 됨)  ! ! 단 ,뷰의 조건식을 만족하는 데이터만

EX)

-- 부서 번호 10의 데이터를 조회 하는 뷰

SQL>

CREATE OR REPLACE VIEW check_option

AS

SELECT empno, ename, deptno

FROM emp

WHERE deptno = 10

WITH CHECK OPTION ;

-- 부서 번호가 10인 사원만 INSERT, UPDATE할 수 있다.


--뷰는 편리성과 보안성 둘 다 가지고 있다. 

--WITH READ ONLY

(SELECT만 가능한 VIEW를 생성 한다)

EX)

WITH READ ONLY

SELECT만 가능한 VIEW를 생성 한다

-- 아래 뷰는 읽기만 가능하다.

SQL>

CREATE OR REPLACE VIEW read_only

AS

SELECT empno, ename, deptno

FROM emp

WHERE deptno = 10

WITH READ ONLY;

 

 

 

-- 뷰 생성

SQL>

CREATE OR REPLACE VIEW name_query

AS

SELECT a.ename, b.dname FROM emp a, dept b

WHERE a.deptno = b.deptno AND b.deptno = 20;

 

-- 뷰를 이용한 조회

SQL>

SELECT *

FROM name_query;

 

결과 

 

ENAME DNAME -------------------- ---------- SMITH RESEARCH JONES RESEARCH ...

'Database > SQL 오라클' 카테고리의 다른 글

[MyBatis]OGNL 표현식  (0) 2020.03.06
ORACLE -JOIN  (0) 2019.09.23
ORACLE -날짜관련 SYSDATE ,TO_DATE(),ADD_MONTHS(),MONTHS_BETWEEN()  (0) 2019.09.22
ORACLE -REVERSSE() 문자열 뒤집기  (0) 2019.09.22
ORACLE -INSTR()  (0) 2019.09.22