szlee·2023년 1월 7일
0

Oracle

목록 보기
15/21

가상테이블.
FROM절에 사용하면 특정 테이블을 조회하는 것과 같은 효과를 얻을 수 있음.

뷰와 서브쿼리 비교한 후 굳이 쓸 필요 없지 않나 라는 생각이 들 수 있지만 다음 두가지 목적을 위해 주로 사용한다.
뷰 사용 목적

  • 편리성 : SELECT문의 복잡도를 완화하기 위해
  • 보안성 : 테이블의 특정 열을 노출하고 싶지 않은 경우
    SELECT문을 뷰로 저장해 놓은 후 다른 SQL문에서 활용하면 전체 SQL문의 복잡도를 완화하고 본래 목적의 메인 쿼리에 집중할 수 있다.





뷰 생성

SYSTEM계정으로 접속한 수 명령어를 사용하여 SCOTT 계정에 권한을 부여.
SCOTT은 오라클에서 기본으로 제공하는 계정. 샘플 데이터 들어있음

CREATE VIEW 뷰이름 AS (SELECT ~~ FROM ~~ WHERE ~~);



뷰 삭제

DROP VIEW 뷰이름;

뷰는 실제 데이터가 아닌 SELECT문만 저장하기 때문에 뷰를 삭제해도 테이블이나 데이터가 삭제되는 것은 아님.





인라인 뷰

CREATE문을 통해 객체로 만들어지는 뷰 외에 SQL문에서 일회성으로 만들어서 사용하는 뷰를 인라인 뷰라고 함.
SELECT 문에서 사용되는 서브쿼리, WITH절에서 미리 이름을 정의해두고 사용하는 SELECT문이 해당.

서브쿼리 사용한 인라인 뷰

SELECT ~~ FROM (SELECT * FROM tb1 ORDER BY COLMN1) T;

WITH절을 사용한 인라인 뷰

WITH T AS (SELECT * FROM tb1 ORDER BY COLMN1)
SELECT ~~ FROM T;
profile
🌱

0개의 댓글