반응형

뷰(View) 테이블 생성 및 제어 

 

뷰(View)

데이터베이스에 존재하는 일종의 가상의 테이블을 의미한다. 실제 테이블의 행과 열을 가지고 있고, 동일한 방식으로 조회할 수 있으나 실제로 데이터를 저장하는 것은 아니다. 

뷰(View) 테이블을 조회하는 순간 원본 테이블로 가서 해당 테이블의 데이터를 보여주는 역할만 수행하는 것이다. 즉, 뷰(View)를 사용하게 되면 여러 테이블이나 뷰를 하나의 테이블처럼 볼 수 있어 편리하다. 

 

뷰(View)의 장점 

1. 특정 사용자에게 테이블 전체가 아닌 필요한 필드만을 보여줄 수 있어 보안적으로 좋다.

2. 복잡한 쿼리를 단순화하여 사용할 수 있다. 

3. 쿼리를 재사용할 수 있다. 

4. 뷰(View)가 참조하는 원본 테이블의 데이터가 변경되면 뷰(View)의 데이터도 같이 변경된다.

 

뷰(View)의 단점

1. 한 번 정의된 뷰는 변경할 수 없다.

2. 삽입, 삭제, 갱신 작업에 많은 제한 사항을 가진다. 원본 테이블의 기본키를 가지고 있다면 가능하다.

3. 뷰(View) 테이블만의 인덱스를 가질 수 없다.

 

문법

CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] [ RECURSIVE ] VIEW name [ ( column_name [, ...] ) ]
    [ WITH ( view_option_name [= view_option_value] [, ... ] ) ]
    AS query
    [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]

 

CREATE VIEW TABLE

-- 하나의 테이블만 사용하며 view 생성하기
create view [뷰 테이블 이름]
as select * from [원본 테이블명]

-- join 하여 view 생성하기
create view [뷰 테이블 이름]
as select * from [테이블 A], [테이블 B]
where [테이블 A 컬럼] = [테이블 B 컬럼]

 

REPLACE VIEW TABLE

create on replace view [뷰 테이블]
as select * from [원본 테이블]

 

DROP VIEW TABLE

drop view [뷰 테이블]

 

뷰는 원본 테이블과 동일한 이름을 가질 수 없다. 보통 view_[원본 테이블 이름]으로 생성한다. 

 

참고 

https://www.postgresql.org/docs/current/sql-createview.html

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기