7 Представления
Основу базы данных составляют базовые таблицы, т. е. таблицы с реальными данными. На основе данных базовых таблиц по запросам результаты представляются в таблицах, которые не содержат собственных данных.
Представление (\\t-w) — это альтернативный способ просмотра данных из одной или нескольких таблиц; это виртуальная таблица, которая не содержит собственных данных; ее содержимое берется или выводится из других таблиц. Представления:
1) позволяют пользователям видеть данные базы данных по-разному, с позиций своих интересов;
2) упрощают доступ к базе данных: каждый пользователь видит данные определенной структуры, хранимые в базе данных;
3) являются одним из средств ограничения доступа к данным (пользователь видит не все столбцы и строки). Создается представление командой CREATE VIEW:
CREATE VIEW <имя_представлення>
AS SELECT предикат (WITH CHECK OPTIONS];
На протяжении выполнения команды CREATE VIEW выполняется запрос, по результатам которого формируется содержимое таблицы-представления. Если указано WITH CHECK OPTIONS, то эти обновления должны удовлетворять условию запроса.
Пример. Создать представление с именем SportGimnast, отображающее пловцов и гимнастов 1-го курса:
CREATE VIEW SportGimnast
AS SELECT plovec, gymnast
FROM Sport
WHERE kurs=l;
Групповое представление содержит предложение GROUP BY или базируется на других групповых представлениях. Например, деканаты ежедневно отслеживают пропуски занятий студентами. Можно получить соответствующую информацию по запросу, а можно создать представление и получать нужную информацию:
CREATE VIEW Propuski
AS SELECT date, COUNT (propuski), SUM ()
FROM Spisok
GROUP BY date;
После этого можно получить необходимую информацию с помощью запроса:
SELECT*
FROM Propuski;
Задания для самостоятельной работы.
Создать SQL-запрос на отображение всех товаров, начинающихся с буквы «М» из таблицы Товары. В случае, если название таблицы или поля состоит из двух и более слов, разделенных пробелом, его нужно заключать в квадратные скобки, например SELECT * FROM [Студенты по списку] WHERE ((([Студенты по списку].[Название группы]) Like "[ТО31]*"));
Создать SQL-запрос на отображение всех товаров, проданных в первом магазине.
Создать SQL-запрос для отображения всех сотрудников 2 магазина.
Создать SQL-запрос для отображения товаров, цена которых меньше 1000.