SQL Представления
Инструкция создания представления SQL
В SQL представление представляет собой виртуальную таблицу, основанную на результирующем наборе инструкций SQL.
Представление содержит строки и столбцы, точно так же, как реальная таблица. Поля в представлении представляют собой поля из одной или нескольких реальных таблиц в базе данных.
В представление можно добавить функции SQL, WHERE и JOIN, а также представить данные, как если бы данные поступили из одной таблицы.
Создать синтаксис представления
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Примечание: В представлении всегда отображаются актуальные данные! Ядро СУБД повторно создает данные, используя инструкцию SQL View, каждый раз, когда пользователь запрашивает представление.
Примеры создания представлений SQL
Если у вас есть база данных Northwind, вы можете видеть, что она имеет несколько представлений, установленных по умолчанию.
В представлении «текущий список товаров» перечислены все активные продукты (продукты, которые не были прекращены) из таблицы «продукты». Представление создается с помощью следующего SQL:
CREATE VIEW [Current Product List] AS
SELECT ProductID, ProductName
FROM Products
WHERE Discontinued = No;
Затем можно запросить представление следующим образом:
SELECT * FROM [Current Product List];
Другое представление в образце базы данных Northwind выбирает каждый продукт в таблице "Products" с ценой за единицу выше, чем средняя цена единицы:
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName, UnitPrice
FROM Products
WHERE UnitPrice > (SELECT AVG(UnitPrice) FROM Products);
Мы можем запросить представление выше следующим образом:
SELECT * FROM [Products Above Average Price];
Другое представление в базе данных Northwind вычисляет общую продажу для каждой категории в 1997. Обратите внимание, что это представление выбирает свои данные из другого представления под названием "продажи продукта для 1997":
CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName, Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName;
Мы можем запросить представление выше следующим образом:
SELECT * FROM [Category Sales For 1997];
Мы также можем добавить условие в запрос. Давайте посмотрим, Общая продажа только для категории "напитки":
SELECT * FROM [Category Sales For 1997]
WHERE CategoryName = 'Beverages';
SQL обновление представления
Можно обновить представление, используя следующий синтаксис:
Синтаксис представления SQL CREATE или Replace
CREATE OR REPLACE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Теперь мы хотим добавить столбец "Category" в представление "текущий список продуктов". Мы будем обновлять представление со следующим SQL:
CREATE OR REPLACE VIEW [Current Product List] AS
SELECT ProductID, ProductName, Category
FROM Products
WHERE Discontinued = No;
SQL удаление представления
Можно удалить вид с помощью команды "Удалить вид".
Синтаксис представления SQL DROP
DROP VIEW view_name;