Sql Scholl
Распечатать страницу
Перейти на главную Карта сайта Отправить сообщение

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

Использование представлений для упрощения сложных объединений

     Чаще всего представления используются для упрощения работы с SQL, и нередко это относится к объединениям. Посмотрите на следующий оператор:

CREATE VIEW ProductCustomers AS SELECT cust_name, cust_contact, prod_id FROM Customers, Orders, OrderItems WHERE Customers.cust_id = Orders.cust_id AND OrderItems.order num = Orders.order_num;

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

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

В отличие от большинства операторов SQL, Microsoft SQL Server не поддерживает использование точки с запятой после оператора create view.

      Для выборки списка клиентов, заказавших продукт RGAN01, нужно выполнить следующее:

 

      Этот оператор возвращает указанные данные из представления в результате применения предложения WHERE. Когда СУБД обрабатывает запрос, она добавляет указанное предложение WHERE к каждому уже существующему предложению WHERE в запросе к представлению, так что данные фильтруются правильно.

SELECT cust_name, cust_contact FROM ProductCustomers WHERE prod_id = 'RGANOl';


cust_name          cust_contact 
----------------   ---------------------
Fun4All            Denise L. Stephens
The Toy Store      Kim Howard

     Таким образом, представления могут значительно упростить сложные операторы SQL. Используя представления, вы можете один раз записать код SQL и затем повторно использовать его, если возникает такая необходимость.

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

Хорошей идеей является создание представлений, не привязанных к конкретным данным. Например, представление, созданное в предыдущем примере, возвращает имена клиентов, заказавших все продукты, а не только продукт RGANOl (для которого представление первоначально и создавалось). Расширение возможностей представления позволяет многократно использовать его, тем самым устраняется также необходимость создавать и хранить много похожих представлений, что делает представление еще более эффективным.