DB/PostgreSQL

[PostgreSQL] View Table(뷰 테이블)에 대해서 알아보자.

빙기때침식곡 2022. 11. 11. 02:08
반응형

뷰테이블은 하나의 가상 테이블이라고 생각하면 된다.
실제 데이터가 저장되는것이 아니고 뷰를 통해 데이터를 관리할 수 있다.

VIEWTABLE과의 차이점은 그냥 TABLE은 실질적인 데이터가 있지만, VIEW는 데이터가 없고 SQL만 저장한다.

쿼리의 결과를 마치 사진으로 찍어 보존한 후, 다음에 또 쿼리 없이 볼 수 있도록 하는 역할

따로 데이터를 생성하는 것이 아니라 참조만 하는 것이다.
뷰가 참조하는 테이블의 데이터가 변경되면 뷰의 데이터도 같이 업데이트 된다.

 

CREATE VIEW myview AS
    SELECT name, temp_lo, temp_hi, prcp, date, location
        FROM weather, cities
        WHERE city = name;
        
SELECT * FROM myview;

 

CREATE 생략가능[OR REPLACE] 생략가능[FORCE | NOFORCE] VIEW 뷰명 
AS (SELECT문)
생략가능[WITH CHECK OPTION 생략가능[CONSTRAINT 제약조건명]] 
생략가능[WITH READ ONLY 생략가능[CONSTRAINT 제약조건명]]

 

OR REPLACE : 해당 구문 사용하면 뷰를 수정할 때 DROP 없이 수정 가능
With Check : 주어진 제약 조건에 맞는 데이터만 입력 및 수정 가능
With read only : select 만 가능

 

장점

  • 논리적 데이터 독립성을 제공한다.
  • 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해 준다.
  • 사용자의 데이터 관리를 간단하게 해준다.
  • 접근 제어를 통한 자동 보안이 제공된다.

 

단점

  • 독립적인 인덱스를 가질 수 없다.
  • ALTER VIEW문을 사용할 수 없다. 즉 뷰의 정의를 변경할 수 없다.
  • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신, 연산에 제약이 따른다.
  • 단순 뷰는 삽입/갱신/삭제가 자유롭다. UNION, GROUP BY 등 복잡 뷰는 불가하다.
반응형