Учебники

19) PostgreSQL Создать представление

Что такое PostgreSQL View?

В PostgreSQL представление представляет собой псевдотаблица. Это означает, что представление не является реальной таблицей. Тем не менее, мы можем выбрать его как обычную таблицу. Представление может иметь все или некоторые столбцы таблицы. Представление также может быть представлением нескольких таблиц.

Таблицы называются базовыми таблицами. При создании представления вам просто нужно создать запрос, затем дать ему имя, что делает его полезным инструментом для упаковки сложных и часто используемых запросов.

В этом руководстве по PostgreSQL вы узнаете следующее:

Создание представлений 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 — это параметры, и они должны быть выполнены для любой записи, добавляемой в представление.

Рассмотрим таблицу цен, приведенную ниже:

Цена:

Давайте создадим представление из таблицы выше:

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

Приведенная выше команда создаст представление на основе оператора SELECT. Только те записи, цена которых превышает 200, будут добавлены в представление. Представлению было присвоено имя Price_View. Давайте запросим его, чтобы увидеть его содержимое:

SELECT *
FROM Price_View;

Это возвращает следующее:

Несмотря на то, что в базовой таблице 4 записи, только 2 были добавлены в представление.

Здесь мы можем добавить только один столбец к представлению. Давайте создадим представление, включающее только один столбец таблицы Price:

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

Представлению присвоено имя Price_View2, и оно включает в себя только столбец цен таблицы Price. Давайте запросим представление, чтобы увидеть его содержимое:

SELECT *
FROM Price_View2;

Это возвращает следующее:

Изменение просмотров PostgreSQL

Определение представления может быть изменено без его удаления. Это делается с помощью оператора CREATE OR REPLACE VIEW.

Давайте продемонстрируем это, обновив представление с именем Price_View2.

Price_View2:

Таблица Book выглядит следующим образом:

Книга:

Таблица цен выглядит следующим образом:

Цена:

Следующий запрос поможет нам обновить представление 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;

Давайте теперь запросим представление, чтобы увидеть его содержимое:

Представление было изменено, и теперь у нас есть два столбца из двух разных таблиц. Это было достигнуто с помощью оператора 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. Нажмите Демо.

Шаг 3) Введите запрос в редакторе запросов:

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

Шаг 4) Нажмите кнопку «Выполнить».

Шаг 5) Для просмотра содержимого представления сделайте следующее:

  1. Введите следующую команду в редакторе запросов:
  2. SELECT *
    FROM Price_View;
    
  3. Нажмите кнопку Выполнить.

Это вернет следующее:

Чтобы создать представление Price_View2, сделайте следующее:

Шаг 1) Введите следующий запрос в редакторе запросов:

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

Шаг 2 ) Нажмите кнопку «Выполнить».

Шаг 3) Чтобы увидеть содержимое представления, сделайте следующее:

  1. Введите следующий запрос в редакторе запросов:
  2. SELECT *
    FROM Price_View2;
    
  3. Нажмите кнопку Выполнить.

Это вернет следующее:

Изменение просмотров PostgreSQL

Чтобы сделать то же самое через pgAdmin, сделайте это:

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2)

  1. На панели навигации слева нажмите Базы данных.
  2. Нажмите Демо.

Шаг 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) Нажмите кнопку «Выполнить».

Шаг 5) Введите следующий запрос в редакторе запросов:

SELECT * 
FROM Price_View2;

Это вернет следующее:

Удаление просмотров PostgreSQL

Чтобы сделать то же самое через pgAdmin, сделайте это:

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2)

  1. На панели навигации слева нажмите Базы данных.
  2. Нажмите Демо.

Шаг 3) Введите запрос в редакторе запросов:

DROP VIEW Price_View2;

Шаг 4) Нажмите кнопку «Выполнить».

Вид будет удален.

Резюме:

  • Представление PostgreSQL — это псевдотаблица, что означает, что это не настоящая таблица.
  • Представление может быть создано из одной или нескольких таблиц.
  • Таблицы, из которых создается представление, называются базовыми таблицами.
  • Чтобы создать представление, мы используем оператор CREATE OR REPLACE VIEW.
  • Чтобы изменить определение представления, мы используем оператор CREATE OR REPLACE VIEW.
  • Чтобы удалить вид, мы используем оператор DROP VIEW.

Загрузите базу данных, использованную в этом руководстве