[ORACLE] 오라클 뷰(view) 사용법(조회,생성,수정,삭제)

뷰(View)란?

하나의 가상테이블이라고 생각하시면 됩니다.

 

작업을 하다보면 자주 조회하는 데이터들이 있습니다.

한테이블에 데이터가 있으면 조회하기 편하겠지만 그렇지 않은 경우가 많습니다.

여러 테이블을 JOIN사용하여 가져오고 쿼리가 복잡한 경우도 있습니다.

이런 경우 쿼리로 뷰를 만들어 놓고 사용하면 편리합니다.

 

그리고 뷰는 보안에도 유리합니다.

테이블에 데이터를 노출시키고 싶지 않을때, 뷰를 사용하여 보여줄 데이터만 뷰로 제공할 수 있습니다.

(ex. 다른업체에 DB데이터 조회 권한을 주었을때, 테이블의 특정데이터 노출안함)

 

뷰(View) 사용목적

1. 뷰를 만들어 놓으면 복잡한 쿼리를 쉽게 작성 가능.

2. 원하는 컬럼만 공개하여 원천데이터 테이블 비공개 가능. 보안성↑

 

뷰(View) 특징

1. 원천데이터가 변경되면 VIEW데이터도 자동으로 변경.

2. 뷰의 검색은 자유로우나, 삽입,수정,삭제는 제약이 있음.

3. 뷰생성 쿼리에 함수를 사용하면 반드시 ALIAS를 지정.

 

 

뷰(View) 사용법

1. 뷰(view)에 적용할 쿼리 생성

 select * 
 	FROM 
    (
    SELECT
        a.col07 as codeKey
        ,a.col01 as region 
        ,a.col02 as name
        ,a.col03 as product
        ,a.col05 as price
        ,b.col02 as cnt
        ,a.col05 * b.col02 as lastPrice
    FROM TEMP1018 a
    JOIN TEMP1019 b
    ON a.col07 = b.col01
)
order by lastPrice desc

3. 뷰(View) 생성

--문법
CREATE OR REPLACE VIEW [뷰 이름] AS [쿼리]
CREATE OR REPLACE VIEW viewGoods AS
 select * FROM 
        (
        select 
             a.col07 as codeKey
             ,a.col01 as region 
             ,a.col02 as name
             ,a.col03 as product
             ,a.col05 as price
             ,b.col02 as cnt
             ,a.col05 * b.col02 as lastPrice
        FROM TEMP1018 a
        JOIN TEMP1019 b
        ON a.col07 = b.col01
        )
        order by lastPrice desc
;

 

뷰가 생성이 되면 위에서 사용된 복잡한 쿼리가아닌 아래 쿼리로 손쉽게 조회 가능합니다.

SELECT * FROM viewGoods;

 

3. 뷰(View) 수정

뷰를 생성할때 CREATE OR REPLACE 를 사용하여

뷰이름이 기존에 있으면 수정, 뷰가 없으면 생성합니다.

--문법
CREATE OR REPLACE VIEW [뷰 이름] AS [쿼리]
CREATE OR REPLACE VIEW viewGoods AS
 select * FROM 
        (
        select 
             a.col07 as codeKey
             ,a.col01 as region 
             ,a.col02 as name
             ,a.col03 as product
             ,a.col05 as price
             ,b.col02 as cnt
             ,a.col06 as orginPrice -- 신규 컬럼추가
             ,a.col05 * b.col02 as lastPrice
        FROM TEMP1018 a
        JOIN TEMP1019 b
        ON a.col07 = b.col01
        )
        order by lastPrice desc
;

4. 뷰(View)삭제

뷰삭제시 원천데이터는 삭제되지 않고, 뷰만 삭제처리 됩니다.

--문법
drop VIEW 뷰네임;
drop VIEW viewGoods;

5. 뷰(View) 구조확인

--문법
DESC 뷰네임;
DESC viewGoods;

 

댓글

Designed by JB FACTORY