Работа с представлениями онлайн урок.


Представления (Views) - это объект базы данных, который часто называют "виртуальной таблицей". В одном из предыдущих уроков мы рассматривали вопрос создания таблицы на основе выборки. Представление - это почти как отдельная таблица с результатом выборки, но она на самом деле не содержит данных. При обращении к представлению, данные извлекаются из обычных таблиц, но работа с представлениями происходит как с обычными таблицами.

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

Для создания представления используется оператор CREATE VIEW:

CREATE VIEW <название> AS SELECT ...

Например,

CREATE VIEW my_view_1 AS SELECT 'foo'

Создаст представление с названием my_view_1, которое можно будет использовать в запросах, как обычную таблицу:

SELECT * FROM my_view_1

- этот запрос даст то же самое, что и SELECT 'foo'

Создадим теперь представление на основе запроса одного из предыдущих уроков

CREATE VIEW customer_product_lines AS 
SELECT c.id client_id, c.name as client, GROUP_CONCAT(DISTINCT pl.name)
FROM customers c
JOIN orders o ON c.id = o.customer_id
JOIN order_details od ON od.order_id = o.id
JOIN products p ON p.id = od.product_id
JOIN product_lines pl ON pl.id = p.product_line_id
GROUP BY c.id


Удобство заключается в том, что теперь для получения данных про заказчиков и их продуктовых линий мы можем написать запрос:

SELECT * FROM customer_product_lines

вместо громоздкого запроса с соединениями и группировками. Более того, при обновлении данных в базовых таблицах, представление будет предоставлять актуальные данные, в отличии от способа создания обычной таблицы CREATE TABLE ... AS SELECT.