PostgreSQL Створення перегляду з прикладом

⚡ Розумний підсумок

PostgreSQL Представлення (views) – це псевдотаблиці, побудовані на основі збереженого запиту SELECT, що дозволяє обгортати складні або часто використовувані запити одним іменем, яке можна читати, оновлювати або видаляти, як звичайну таблицю.

  • 🗂️ Псевдотаблиця: Представлення зберігає запит, а не дані, проте ви вибираєте його, як таблицю.
  • 🛠️ Створити: CREATE VIEW іменує запит SELECT, навіть для кількох базових таблиць, для легкого повторного використання.
  • ♻️ Замінити: СТВОРИТИ АБО ЗАМІНИТИ ПЕРЕГЛЯД змінює перегляд без видаленняping його.
  • 🗑️ Падіння: DROP VIEW видаляє подання, а IF EXISTS запобігає помилці.
  • 🤖 Допомога зі штучним інтелектом: Помічники штучного інтелекту генерують визначення представлень і пропонують, які запити переносити.

PostgreSQL Створити перегляд

Що таке PostgreSQL Переглянути?

In PostgreSQL, представлення є псевдотаблицею. Це означає, що представлення не є справжньою таблицею. Однак ми можемо ВИБРАТИ його як звичайну таблицю. Подання може містити всі або деякі стовпці таблиці. Представлення також може бути представленням більш ніж однієї таблиці.

Ці таблиці називаються базовими таблицями. Під час створення представлення вам просто потрібно створити запит, а потім дати йому назву, що робить його корисним інструментом для перенесення.ping складні та часто використовувані запити.

створення PostgreSQL думки

Щоб створити PostgreSQL view, ми використовуємо інструкцію 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 і містить лише стовпець ціни таблиці Price. Давайте запитаємо представлення, щоб побачити його вміст:

SELECT *
FROM Price_View2;

Це повертає наступне:

створення PostgreSQL думки

Зміна PostgreSQL думки

Визначення подання можна змінити, не видаляючи його. Це робиться за допомогою оператора CREATE OR REPLACE VIEW.

Давайте продемонструємо це, оновивши представлення під назвою Price_View2.

Price_View2:

Зміна PostgreSQL думки

Стіл Книги виглядає наступним чином:

Книга:

Зміна 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 думки

Щоразу, коли вам потрібно видалити a 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)

  • На панелі навігації ліворуч натисніть Бази даних.
  • Натисніть Демо.

створення PostgreSQL Перегляди за допомогою pgAdmin

Крок 3) Введіть запит у редакторі запитів:

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

Крок 4) Натисніть кнопку Виконати.

створення PostgreSQL Перегляди за допомогою pgAdmin

Крок 5) Щоб переглянути вміст подання, виконайте такі дії:

  • Введіть таку команду в редакторі запитів:
SELECT *
FROM Price_View;
  • Натисніть кнопку Виконати.

створення PostgreSQL Перегляди за допомогою pgAdmin

Це поверне наступне:

створення PostgreSQL Перегляди за допомогою pgAdmin

Щоб створити представлення Price_View2, виконайте такі дії:

Крок 1) Введіть наступний запит у редакторі запитів:

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

Крок 2) Натисніть кнопку Виконати.

створення PostgreSQL Перегляди за допомогою pgAdmin

Крок 3) Щоб переглянути вміст подання, виконайте такі дії:

  • Введіть наступний запит у редакторі запитів:
SELECT *
FROM Price_View2;
  • Натисніть кнопку Виконати.

створення PostgreSQL Перегляди за допомогою pgAdmin

Це поверне наступне:

створення PostgreSQL Перегляди за допомогою pgAdmin

Зміна PostgreSQL думки

Щоб зробити те саме через pgAdmin, виконайте наступне:

Крок 1) Увійдіть у свій обліковий запис pgAdmin.

Крок 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)

  • На панелі навігації ліворуч натисніть Бази даних.
  • Натисніть Демо.

видалення PostgreSQL Перегляди за допомогою pgAdmin

Крок 3) Введіть запит у редакторі запитів:

DROP VIEW Price_View2;

Крок 4) Натисніть кнопку Виконати.

видалення PostgreSQL Перегляди за допомогою pgAdmin

Перегляд буде видалено.

Завантажте базу даних, яка використовується в цьому посібнику

Поширені запитання

Таблиця фізично зберігає дані на диску. Представлення зберігає лише запит SELECT, тому запит до нього повторно виконує цей запит і повертає поточні дані з базових таблиць.

Матеріалізоване представлення кешує результат запиту на диску. Воно зчитується швидше, ніж звичайне представлення, але потребує налаштування REFRESH MATERIALIZED VIEW для відображення нових даних.

Стандартне представлення виконує свій запит щоразу, показуючи дані в реальному часі. Матеріалізоване представлення зберігає результати на диску для пришвидшення, але може бути неактуальним до оновлення.

Іноді. Просте представлення з однією таблицею без агрегації оновлюється автоматично, тому INSERT, UPDATE та DELETE працюють безпосередньо. Складні представлення потребують тригерів INSTEAD OF.

Зробіть запит до каталогу: SELECT table_name FROM information_schema.views WHERE table_schema = 'public'. У pgAdmin ви можете розгорнути вузол Views у схемі.

Помічники штучного інтелекту перетворюють запит, написаний простою мовою, на оператор CREATE VIEW, називають представлення та додають правильні речення WHERE та JOIN, пришвидшуючи виконання запитів, які ви часто використовуєте повторно.

Так. Вставте довгий оператор SELECT, і помічник зі штучним інтелектом обгорне його в CREATE OR REPLACE VIEW, запропонує назву та позначить стовпці, що потребують псевдонімів, щоб уникнути дублювання імен.

Звичайне представлення не пришвидшує виконання запитів, оскільки його SELECT виконується кожного разу. Для швидшого повторного читання використовуйте матеріалізоване представлення, яке зберігає результати на диску до оновлення.

Підсумуйте цей пост за допомогою: