English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PostgreSQL View(뷰)

View(뷰)는 가상 테이블이지만, 관련 이름을 통해 데이터베이스에 저장된 PostgreSQL 문장입니다.

View(뷰)는 실제로는 предопределенной PostgreSQL 쿼리 형식으로 존재하는 테이블의 조합입니다.

View(뷰)는 하나의 테이블의 모든 행이나 여러 개의 테이블에서 선택된 행을 포함할 수 있습니다.

View(뷰)는 하나 또는 여러 개의 테이블에서 생성될 수 있으며, 생성할 뷰의 PostgreSQL 쿼리에 따릅니다.

View(뷰)는 사용자가 다음과 같은 점을 실현할 수 있는 가상 테이블입니다:

  • 사용자나 사용자 그룹이 구조 데이터를 더 자연스럽고 직관적으로 찾는 방식으로 생각합니다.

  • 데이터 접근을 제한하여 사용자가 전체 테이블 대신 제한된 데이터를 볼 수 있도록 합니다.

  • 다양한 테이블의 데이터를 요약하여 보고서를 생성하는 데 사용됩니다.

PostgreSQL 뷰는 읽기 전용이므로, 뷰에서 DELETE, INSERT 또는 UPDATE 문을 실행할 수 없을 수 있습니다. 그러나 뷰에서 트리거를 생성하여 DELETE, INSERT 또는 UPDATE 뷰를 시도할 때 트리거 내용에서 정의된 작업을 수행할 수 있습니다.

CREATE VIEW(뷰 생성)

PostgreSQL에서 CREATE VIEW 문장을 사용하여 뷰를 생성하면, 뷰 생성은 한 개의 테이블, 여러 개의 테이블 또는 다른 뷰에서 시작할 수 있습니다.

CREATE VIEW 基础语法如下:

CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];

SELECT 문에서 여러 테이블을 포함할 수 있습니다. 이는 일반 SQL SELECT 쿼리와 매우 유사합니다. TEMP 또는 TEMPORARY 키워드를 사용하면 임시 데이터베이스에서 뷰를 생성합니다.

온라인 예제

COMPANY 테이블 생성(COMPANY SQL 파일 다운로드 ),데이터 내용은 다음과 같습니다:

w3codeboxdb# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

이제, COMPANY 테이블에서 뷰를 생성하는 예제입니다. 뷰는 COMPANY 테이블에서 몇 개의 열만 선택합니다:

w3codeboxdb=# CREATE VIEW COMPANY_VIEW AS
SELECT ID, NAME, AGE
FROM  COMPANY;

이제, COMPANY_VIEW를 조사할 수 있습니다. 실제 테이블을 조사하는 방식과 유사합니다. 예제는 다음과 같습니다:

w3codeboxdb# SELECT * FROM COMPANY_VIEW;

결과는 다음과 같습니다:

id | name  | age
----+-------+-----
  1 | Paul  |  32
  2 | Allen |  25
  3 | Teddy |  23
  4 | Mark  |  25
  5 | David |  27
  6 | Kim   |  22
  7 | James |  24
(7 rows)

DROP VIEW (뷰 제거)

뷰를 제거하려면 view_name을 포함한 DROP VIEW 문을 사용하면 됩니다. DROP VIEW의 기본 문법은 다음과 같습니다:

w3codeboxdb=# DROP VIEW view_name;

아래 명령어는 이전에 생성한 COMPANY_VIEW 뷰를 제거합니다:

w3codeboxdb=# DROP VIEW COMPANY_VIEW;