PostgreSQL 예제를 사용하여 뷰 생성

PostgreSQL 보다?

In PostgreSQL, 뷰는 의사 테이블입니다. 이는 뷰가 실제 테이블이 아님을 의미합니다. 그러나 일반 테이블로 SELECT할 수 있습니다. 뷰에는 테이블 열 전체 또는 일부가 포함될 수 있습니다. 뷰는 둘 이상의 테이블을 나타낼 수도 있습니다.

테이블은 기본 테이블이라고 합니다. 뷰를 만들 때는 쿼리를 만들고 이름을 지정하기만 하면 되므로 복잡하고 일반적으로 사용되는 쿼리를 래핑하는 데 유용한 도구입니다.

만들기 PostgreSQL 조회수

를 만들려면 PostgreSQL 뷰에서는 CREATE VIEW 문을 사용합니다. 이 명령문의 구문은 다음과 같습니다.

CREATE [OR REPLACE] VIEW view-name AS
  SELECT column(s)
  FROM table(s)
  [WHERE condition(s)];

OR REPLACE 매개변수는 이미 존재하는 경우 뷰를 대체합니다. 생략하고 뷰가 이미 존재하는 경우 오류가 반환됩니다.

view-name 매개변수는 생성해야 하는 보기의 이름입니다.

WHERE 조건은 옵션이며, 뷰에 추가할 레코드에 대해 충족되어야 합니다.

아래에 제공된 가격표를 고려하십시오.

가격:

만들기 PostgreSQL 조회수

위의 테이블에서 뷰를 만들어 보겠습니다.

CREATE VIEW Price_View AS
  SELECT id, price
  FROM Price
  WHERE price > 200;

위의 명령은 다음을 기반으로 뷰를 생성합니다. SELECT 문. 가격이 200보다 큰 레코드만 보기에 추가됩니다. 뷰의 이름은 Price_View로 지정되었습니다. 내용을 보기 위해 쿼리해 보겠습니다.

SELECT *
FROM Price_View;

다음을 반환합니다.

만들기 PostgreSQL 조회수

기본 테이블에 4개의 레코드가 있더라도 뷰에는 2개만 추가되었습니다.

여기서는 뷰에 하나의 열만 추가할 수 있습니다. Price 테이블의 열 하나만 포함하는 뷰를 만들어 보겠습니다.

CREATE VIEW Price_View2 AS
  SELECT price
  FROM Price
  WHERE price > 200;

뷰에는 Price_View2라는 이름이 지정되었으며 가격 테이블의 가격 열만 포함됩니다. 내용을 보기 위해 뷰를 쿼리해 보겠습니다.

SELECT *
FROM Price_View2;

다음을 반환합니다.

만들기 PostgreSQL 조회수

변경하기 PostgreSQL 조회수

뷰의 정의는 삭제하지 않고도 변경할 수 있습니다. 이는 CREATE OR REPLACE VIEW 문을 사용하여 수행됩니다.

Price_View2라는 뷰를 업데이트하여 이를 보여드리겠습니다.

가격_조회2:

변경하기 PostgreSQL 조회수

Book 테이블은 다음과 같습니다.

도서:

변경하기 PostgreSQL 조회수

가격표는 다음과 같습니다.

가격:

변경하기 PostgreSQL 조회수

다음 쿼리는 Price_View2 뷰를 업데이트하는 데 도움이 됩니다.

CREATE or REPLACE VIEW Price_View2 AS
  SELECT price, name
  FROM Book
  INNER JOIN Price
  ON Book.id = Price.id
  WHERE price > 200;

이제 뷰를 쿼리하여 내용을 살펴보겠습니다.

변경하기 PostgreSQL 조회수

뷰가 변경되었으며 이제 두 개의 다른 테이블에서 두 개의 열이 생겼습니다. 이는 JOIN 문을 사용하여 달성되었습니다.

삭제 PostgreSQL 조회수

삭제해야 할 때마다 PostgreSQL 보다. DROP VIEW 문을 사용할 수 있습니다. 문의 구문은 다음과 같습니다.

DROP VIEW [IF EXISTS] view-name;

view-name 매개변수는 삭제할 보기의 이름입니다.

이 구문에서 IF EXISTS는 선택 사항입니다. 필수 사항입니다. 이를 지정하지 않고 존재하지 않는 뷰를 삭제하려고 하면 오류가 발생합니다.

예를 들어, Price_View2라는 뷰를 삭제하려면 다음 명령문을 실행할 수 있습니다.

DROP VIEW Price_View2;

보기가 삭제됩니다.

pgAdmin 사용

이제 pgAdmin을 사용하여 이러한 작업을 수행하는 방법을 살펴보겠습니다.

만들기 PostgreSQL 조회수

pgAdmin을 통해 동일한 작업을 수행하려면 다음을 수행하십시오.

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  1. 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  2. 데모를 클릭하세요.

만들기 PostgreSQL pgAdmin을 사용한 보기

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

CREATE VIEW Price_View AS
  SELECT id, price
  FROM Price
  WHERE price > 200;

단계 4) 실행 버튼을 클릭하세요.

만들기 PostgreSQL pgAdmin을 사용한 보기

5단계) 보기의 내용을 보려면 다음을 수행합니다.

  1. 쿼리 편집기에 다음 명령을 입력하세요.
  2. SELECT *
    FROM Price_View;
    
  3. 실행 버튼을 클릭하세요.

만들기 PostgreSQL pgAdmin을 사용한 보기

다음이 반환됩니다.

만들기 PostgreSQL pgAdmin을 사용한 보기

Price_View2 뷰를 만들려면 다음을 수행하세요.

단계 1) 쿼리 편집기에 다음 쿼리를 입력하세요.

CREATE VIEW Price_View2 AS
  SELECT price
  FROM Price
  WHERE price > 200;

2단계) 실행 버튼을 클릭하세요.

만들기 PostgreSQL pgAdmin을 사용한 보기

단계 3) 보기의 내용을 보려면 다음을 수행하세요.

  1. 쿼리 편집기에 다음 쿼리를 입력하세요.
  2. SELECT *
    FROM Price_View2;
    
  3. 실행 버튼을 클릭하세요.

만들기 PostgreSQL pgAdmin을 사용한 보기

다음이 반환됩니다.

만들기 PostgreSQL pgAdmin을 사용한 보기

변경하기 PostgreSQL 조회수

pgAdmin을 통해 동일한 작업을 수행하려면 다음을 수행하십시오.

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  1. 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  2. 데모를 클릭하세요.

변경하기 PostgreSQL pgAdmin을 사용한 보기

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

CREATE or REPLACE VIEW Price_View2 AS
  SELECT price, name
  FROM Book
  INNER JOIN Price
  ON Book.id = Price.id
  WHERE price > 200;

단계 4) 실행 버튼을 클릭하세요.

변경하기 PostgreSQL pgAdmin을 사용한 보기

단계 5) 쿼리 편집기에 다음 쿼리를 입력하세요.

SELECT * 
FROM Price_View2;

다음이 반환됩니다.

변경하기 PostgreSQL pgAdmin을 사용한 보기

삭제 PostgreSQL 조회수

pgAdmin을 통해 동일한 작업을 수행하려면 다음을 수행하십시오.

단계 1) pgAdmin 계정에 로그인하세요.

단계 2)

  1. 왼쪽 탐색 모음에서 데이터베이스를 클릭합니다.
  2. 데모를 클릭하세요.

삭제 PostgreSQL pgAdmin을 사용한 보기

단계 3) 쿼리 편집기에 쿼리를 입력합니다.

DROP VIEW Price_View2;

단계 4) 실행 버튼을 클릭하세요.

삭제 PostgreSQL pgAdmin을 사용한 보기

보기가 삭제됩니다.

요약

  • A PostgreSQL view는 의사 테이블입니다. 즉, 실제 테이블이 아닙니다.
  • 하나 이상의 테이블에서 뷰를 만들 수 있습니다.
  • 뷰가 생성되는 테이블을 기본 테이블이라고 합니다.
  • 뷰를 생성하려면 CREATE OR REPLACE VIEW 문을 사용합니다.
  • 뷰 정의를 변경하려면 CREATE OR REPLACE VIEW 문을 사용합니다.
  • 뷰를 삭제하려면 DROP VIEW 문을 사용합니다.

이 튜토리얼에 사용된 데이터베이스 다운로드