
-- Создать представление "Участники заказов", содержащее имена предприятий с указанием города и наименования выполняемых ими заказов, отсортированные по городу.
CREATE VIEW Participant_orders AS
SELECT cy.cy_name, cy.cy_city, ce.ce_name
FROM company AS cy INNER JOIN execution AS e ON cy.cy_id = e.cy_id INNER JOIN commande AS ce ON e.ce_id = ce.ce_id
GROUP BY cy.cy_name, cy.cy_city, ce.ce_name
ORDER BY cy.cy_city;
-- росмотреть данные, возвращаемые созданным представлением, с помощью SELECT * FROM имя_представления.
SELECT * FROM Participant_orders;
-- Добавить в таблицу «Выполнение» еще одну запись и просмотреть изменение данных, возвращаемых созданным представлением.
INSERT INTO Execution (cy_id, ce_id, e_planned_date)
VALUES ('00A02', '00-AA-01', '13.12.2023');
SELECT * FROM Participant_orders;
-- С помощью созданного представления вывести наименования заказов, выполняемых предприятиями определенного города.
SELECT * FROM Participant_orders
WHERE cy_city = 'Paris';
-- Создать материализованное представление “Участники заказов_MV” с тем же содержимым, что и представление “Участники заказов”.
CREATE MATERIALIZED VIEW Participant_orders_MV AS
SELECT cy.cy_name, cy.cy_city, ce.ce_name
FROM company AS cy INNER JOIN execution AS e ON cy.cy_id = e.cy_id INNER JOIN commande AS ce ON e.ce_id = ce.ce_id
GROUP BY cy.cy_name, cy.cy_city, ce.ce_name
ORDER BY cy.cy_city;
-- Просмотреть данные, возвращаемые созданным представлением, с помощью SELECT * FROM имя_мат_представления.
SELECT * FROM Participant_orders_MV;
-- Добавить в таблицу «Выполнение» еще одну запись и просмотреть отсутствие изменения данных, возвращаемых созданным материализованным представлением.
INSERT INTO Execution (cy_id, ce_id, e_planned_date)
VALUES ('00A02', '00-AA-02', '24.09.2024');
SELECT * FROM Participant_orders_MV;
-- Выполнить обновление созданного материализованного представления. Просмотреть наличие произведенных изменений, возвращаемых созданным материализованным представлением.
REFRESH MATERIALIZED VIEW Participant_orders_MV;
SELECT * FROM Participant_orders_MV;