반응형
뷰(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_[원본 테이블 이름]으로 생성한다.
참고
반응형
'DBMS > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] DB 파티셔닝(Partitioning) 정의 및 예제 (0) | 2023.02.09 |
---|---|
[PostgreSQL] 공간 인덱스 활용 (0) | 2023.02.07 |
[PostgreSQL] 특정 문자열 개수 구하기 (0) | 2023.01.19 |
[PostgreSQL] SELECT JOIN 결과값 UPDATE (0) | 2023.01.18 |
[PostgreSQL] 괄호가 포함된 문자 replace하기 (0) | 2023.01.17 |
최근댓글