Опубликован: 11.12.2006 | Доступ: свободный | Студентов: 5820 / 381 | Оценка: 4.42 / 3.86 | Длительность: 57:15:00
Лекция 18:

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

Связывание

Определяя связывание в представлении, вы можете упрощать операторы T-SQL, используемые для доступа к данным, по сравнению с операторами, содержащими оператор JOIN. Рассмотрим один пример. Предположим, у нас имеются две таблицы – MАnager и Employee2 (рис. 18.5).

Таблицы MАnager и Employee2

Рис. 18.5. Таблицы MАnager и Employee2

Следующий оператор выполняет связывание таблиц Employee2 и MАnager в одну виртуальную таблицу:

CREATE VIEW org_chart
AS 
  	SELECT 		Employee.ename, 
         				MАnager.mname 
  	FROM   		Employee, MАnager 
 	WHERE  		Employee.manager_id = mАnager.id 
  	GROUP  BY 	MАnager.mname, Employee.ename

В данном примере указанные две таблицы связаны значением mАnager_id (идентификатор руководителя). Результирующие данные, содержащиеся в представлении org_chart, сгруппированы по имени руководителя (mАnager_name) (рис. 18.6). Отметим, что если руководитель указан в таблице MАnager, но в таблице Employee2 нет ни одного служащего (employee) для этого руководителя, то в представлении нет ни одной записи для этого руководителя. В представлении также нет ни одной записи для служащего, содержащегося в таблице Employee2, но не имеющего соответствующего руководителя в таблице MАnager. Все это видят пользователи в виртуальной таблице со служащими и руководителями.

Агрегирование

Агрегированные представления могут оказаться полезными во многих случаях, таких как считывание средних значений и сумм по отделам. Например, вы можете использовать агрегированное представление для бюджетных целей, чтобы просматривать денежные суммы, относящиеся к выплатам жалования по каждому отделу. Вы можете также выполнить эту задачу с помощью запроса T-SQL. Преимущество представления состоит в том, что пользователи могут использовать его, не зная, как применять функции агрегирования и запросы T-SQL.

Представление org_chart

Рис. 18.6. Представление org_chart
Примечание.Функции агрегирования SQL Server выполняют расчеты по наборам значений и возвращают одно значение. Это функции AVG, COUNT, MAX, MIN и SUM.

Следующий оператор задает представление, в котором используется функция агрегирования SUM по таблице Employee:

CREATE VIEW sal_vw
AS
  	SELECT 		dept, 
                     SUM(Salary) 
  	FROM   		Employee 
  	GROUP  		BY dept

В этом примере представление задает виртуальную таблицу, где показаны суммы выплат жалования (Salary) по каждому отделу (dept). Результирующий набор группируется по отделам (рис. 18.7). Это очень простое агрегированное представление. Ваши представления могут иметь любой уровень сложности, необходимый для выполнения нужной функции.

 Представление sal_vw

Рис. 18.7. Представление sal_vw