groupby coach_type
Второй способ – указать псевдоним для второго столбца внутри оператора select:
create view coach_types_prices
as
select coach_type, avg(price) as average_price
from coaches, seats, passengers_seats
where passengers_seats.id_seat = seats.id_seat
and seats.id_coach = coaches.id_coach
groupby coach_type
Теперь рассмотрим ситуацию, когда возникает конфликт имен. Требуется создать представление на основе эквисоединения таблиц coaches и trains. Эквисоединение содержит все столбцы исходных таблиц, поэтому общий столбец id_train встретится в эквисоединении дважды, что недопустимо для представлений. Избежать конфликта имен можно только одним способом: переименовать хотя бы один из столбцов id_train:
create view coaches_trains (id_coach, coach_number, coach_type, id_train, id_train2, train_name, train_type, train_number)
as
select *
from coaches, trains
where coaches.id_train = trains.id_train
В представлении coaches_trains два идентичных столбца выступают под разными именами: столбец coaches.id_train в представлении носит имя id_train, а trains.id_train переименовывается в id_train2.
2.5.2. Выборка из представлений
Выборка из представлений осуществляется точно так же, как и из таблиц. В частности, возможна выборка из нескольких таблиц и представлений одновременно. А значит, на основе выборки из представлений может быть создано еще одно представление. В этом случае говорят о вложенности представлений. Вложенность представлений в Microsoft SQL Server 2005 не должна превышать 32 уровней.
2.5.3. Модификация данных через представление
Transact-SQL допускает использование имен представлений в операторах insert, update и delete. При этом создается видимость обработки записей представления, хотя на самом деле через представление обрабатываются записи и отдельные поля исходных таблиц БД. Необходимо отметить, что выполнить обработку данных через представление с помощью указанных операторов SQL не всегда возможно. Это связано с действием в СУБД SQL Server следующих ограничений:
· можно модифицировать только столбцы, которые выбраны непосредственно из таблиц и представлений; нельзя модифицировать столбцы представлений, созданные на основе результатов вычислений;
· за одну операцию изменения (вставки, удаления) разрешается модифицировать столбцы, принадлежащие только одной таблице; это замечание актуально для представлений, созданных на основе выборки из нескольких таблиц.
2.5.4. Изменение представлений
Изменение представлений осуществляется при помощи команды alterview:
alterview [имя_БД.][имя_схемы.]имя_представления
[(столбец [,…n])]
as запрос
Параметры команды полностью аналогичны параметрам команды createview. С помощью оператора alterview можно изменить код запроса для существующего представления и переименовать его столбцы.
2.4.5. Удаление представлений
Чтобы удалить представление из БД, следует воспользоваться SQL-командой dropview, единственным параметром которого является имя представления или список имен представлений, перечисляемых через запятую. Команда dropview удаляет представления только из текущей БД. Удаление представления не приводит к уничтожению данных в таблицах БД.
3. Порядок выполнения работы
1. Изучить теоретическую часть и литературные источники в части программирования SQL-запросов.
2. Для своего варианта задания реализовать запросы к БД. Часть запросов должна быть реализована в виде представлений.
3. Проверить правильность работы всех запросов.
4. Продемонстрировать преподавателю работу запросов в SQL Server Management Studio.
1. Мамаев Е. В. Microsoft ® SQL Server 2000. – СПб.: БХВ-Петербург, 2004. – 1280 с.: ил.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.