PostgreSQL - ВИДЫ

Представления - это псевдотаблицы. То есть это не настоящие таблицы; тем не менее, для SELECT отображаются как обычные таблицы. Представление может представлять подмножество реальной таблицы, выбирая определенные столбцы или определенные строки из обычной таблицы. Представление может даже представлять объединенные таблицы. Поскольку представлениям назначаются отдельные разрешения, вы можете использовать их для ограничения доступа к таблице, чтобы пользователи видели только определенные строки или столбцы таблицы.

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

Представления, которые являются своего рода виртуальными таблицами, позволяют пользователям делать следующее:

  • Структурируйте данные таким образом, чтобы пользователи или классы пользователей находили естественный или интуитивно понятный способ.

  • Ограничьте доступ к данным, чтобы пользователь мог видеть только ограниченные данные, а не полную таблицу.

  • Суммируйте данные из различных таблиц, которые можно использовать для создания отчетов.

Поскольку представления не являются обычными таблицами, вы не сможете выполнить оператор DELETE, INSERT или UPDATE для представления. Однако вы можете создать ПРАВИЛО для решения этой проблемы с использованием DELETE, INSERT или UPDATE для представления.

Создание представлений

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

Базовый синтаксис CREATE VIEW следующий:

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

Вы можете включить несколько таблиц в свой оператор SELECT так же, как вы используете их в обычном запросе PostgreSQL SELECT. Если присутствует необязательное ключевое слово TEMP или TEMPORARY, представление будет создано во временном пространстве. Временные представления автоматически удаляются в конце текущего сеанса.

пример

Учтите, что в таблице КОМПАНИЯ есть следующие записи -

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

Теперь ниже приведен пример создания представления из таблицы COMPANY. Это представление будет использоваться, чтобы иметь только несколько столбцов из таблицы COMPANY -

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

Теперь вы можете запросить COMPANY_VIEW так же, как вы запрашиваете фактическую таблицу. Ниже приведен пример -

testdb=# 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 следующий:

testdb=# DROP VIEW view_name;

Следующая команда удалит представление COMPANY_VIEW, которое мы создали в последнем разделе -

testdb=# DROP VIEW COMPANY_VIEW;