반응형
오늘은 Postgresql에서 VIEW를 사용하는 방법을 알아보겠습니다. 먼저 Postgresql 문서를 한국어로 번역한 홈페이지에서 자료를 가져왔습니다.
CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] [ RECURSIVE ] VIEW 이름 [ ( 칼럼이름 [, ...] ) ]
[ WITH ( 뷰옵션이름 [= 뷰옵션값] [, ... ] ) ]
AS 쿼리
[ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
"CREATE VIEW 명령은 지정한 쿼리를 바탕으로 새 뷰를 만든다. 뷰는 물리적으로 구체화하는 개체는 아니다. 뷰를 호출하면 매번 그 뷰에 지정한 쿼리를 실행한다."
뷰는 다시 말해 이미 존재하는 테이블에서 데이터를 추출할 때 또 다른 (가상) 테이블을 만드는 것입니다. 파라미터 중 TEMPORARY는 이 가상의 뷰를 세션이 종료되면 바로 삭제되도록 하는 것입니다. 말로만 하면 이해가 잘 안되니 예시를 들어 설명해보겠습니다.
CREATE VIEW revenue0 (supplier_no, total_revenue) as
SELECT
l_suppkey,
sum(l_extendedprice * (1 - l_discount))
FROM
lineitem
WHERE
l_shipdate >= date '1997-05-01'
and l_shipdate < date '1997-05-01' + interval '3' month
GROUP BY
l_suppkey;
# VIEW 확인
SELECT * FROM public.revenue0
이렇게 생성된 뷰는 실제 DB에 저장된 테이블이 아니라 가상으로 생성된 테이블입니다. 결국 나중에 자동으로 삭제되거나 수동으로 지워줘야 하는 것이죠.
SELECT
s_suppkey,
s_name,
s_address,
s_phone,
total_revenue
FROM
supplier,
revenue0
WHERE
s_suppkey = supplier_no
and total_revenue = (
SELECT
max(total_revenue)
FROM
revenue0
)
ORDER BY
s_suppkey;
728x90
반응형
'문돌이 존버 > DB 및 SQL 스터디' 카테고리의 다른 글
SQLD ROWNUM, LIKE, UNION, INTERSECT, MINUS 예제 (0) | 2021.02.27 |
---|---|
MySQL 언어 설정(charset) 변경하기! (0) | 2021.02.20 |
TPC-H 데이터베이스(DB) 데이터 활용법 (1) | 2021.02.17 |
Postgresql function, as keyword, typecasting 사용하기 (0) | 2021.02.09 |
Neo4j import csv & create node (0) | 2021.02.07 |