Представления являются псевдотабличными. То есть они не являются настоящими таблицами; тем не менее отображаются как обычные таблицы для выбора. Представление может представлять подмножество реальной таблицы, выбирая определенные столбцы или определенные строки из обычной таблицы. Представление может даже представлять объединенные таблицы. Поскольку представлениям назначаются отдельные разрешения, их можно использовать для ограничения доступа к таблице, чтобы пользователи могли видеть только определенные строки или столбцы таблицы.
Представление может содержать все строки таблицы или выбранные строки из одной или нескольких таблиц. Представление может быть создано из одной или нескольких таблиц, что зависит от написанного запроса 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, представление будет создано во временном пространстве. Временные представления автоматически удаляются в конце текущего сеанса.
пример
Представьте, что таблица 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
Далее приведен пример создания представления из таблицы 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, которое мы создали в последнем разделе —