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

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

Использование представлений для переформатирования выбранных данных

      Как уже говорилось выше, другим наиболее частым случаем использования представлений является переформатирование выбранных данных. Следующий оператор SELECT (см. раздел, "Создание вычисляемых полей") возвращает имя поставщика и его местонахождение в одном комбинированном вычисляемом столбце:

SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')' AS vend_title
FROM Vendors
ORDER BY vend_name; 



vend_title 
--------------------------------
Bear Emporium (USA) 
Bears R Us (USA) 
Doll House Inc. (USA) 
Fun and Games (England) 
Furball Inc. (USA) 
Jouets et ours (France) 



SELECT RTRIM(vend_name) || ' ( ' || RTRIM (vend_country) || ')' AS vend_title FROM Vendors ORDER BY vend_name;


vend title 
-----------------------------------------------
Bear Emporium (USA) 
Bears R Us (USA) 
Doll House Inc. (USA) 
Fun and Games (England) 
Furball Inc. (USA) 
Jouets et ours (France)

      Теперь предположим, что результаты регулярно требуются в таком формате. Вместо того чтобы выполнять объединение каждый раз, когда в этом возникает необходимость, вы можете создать представление и использовать его вместо объединения. Для превращения этого оператора в представление нужно сделать следующее:

CREATE VIEW VendorLocations AS SELECT RTRIM(vend_name) +' (' + RTRIM(vend_country) + ')' AS vend_title FROM Vendors;

        Здесь также применяется оператор, использующий синтаксис ||:

CREATE VIEW VendorLocations AS SELECT RTRIM(vend_name) | | ' (' | | RTRIM (vend_country) || ' )' AS vend_title FROM Vendors;

       Посредством этого оператора создается представление, использующее в точности тот же самый запрос, как и в предыдущем операторе SELECT. Для извлечения данных, необходимых для создания почтовых наклеек, выполните следующее:

SELECT * FROM VendorLocations; 



vend_title 
------------------------------
Bear Emporium (USA) 
Bears R Us (USA) 
Doll House Inc. (USA) 
Fun and Games (England) 
Furball Inc. (USA) 
Jouets et ours (France)

 

Все ограничения оператора SELECT сохраняются

Ранее в этом уроке говорилось, что синтаксис, применяемый для создания представлений, различен в разных СУБД. Но почему так много версий синтаксиса операторов? Представление просто скрывает оператор select, и синтаксис этого оператора select должен четко соответствовать правилам и ограничениям используемой СУБД.