Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
гарин_Курсач.doc
Скачиваний:
2
Добавлен:
22.12.2018
Размер:
789.5 Кб
Скачать

5.2 Создание запросов на языке sql

Типы запросов, создаваемых в MS Access: запросы на выборку; запросы с параметрами; перекрёстные запросы; запросы на изменение (запросы на удаление, обновление, добавление записей); запросы SQL (запросы на объединение, запросы к серверу, управляющие запросы, подчинённые запросы).

В MS Access запрос SQL можно выполнить несколькими способами. Самый простой способ – воспользоваться мастером запросов. Мастер запросит таблицы и поля, из которых надо производить выборку, условия, по которым производить выборку, а затем создаст соответствующий запрос.

Другой способ заключается в формировании запроса с помощью конструктора запросов (рисунок 4.2.1).

Рисунок 4.2.1 Конструктор запросов

Конструктор позволяет набрать запрос вручную, для этого нужно из контекстного меню переключиться в режим SQL.

Запросы в данной работе следующие:

Упорядочение : дата продажи автомобилей. Поиск: все сведения о клиенте по фамилии. Ограничение целостности: Автомобиль может быть продан только одному клиенту. Вычисление: Количество клиентов автосалона. Коррекция: удаление устаревших данных ( за прошлый год ).

Ниже приведенены списки текстов запросов на языке SQL и результаты их работы (рис.-3.2.3 по 3.2.31):

Текст на языке SQL Запрос на упорядочение по дате продажи:

SELECT [Проданные автомобили].Марка, Продажа.Фамилия_покупателя, Продажа.Имя_покупателя, Продажа.Отчество_покупателя, Продажа.Дата_продажи

FROM [Проданные автомобили] INNER JOIN Продажа ON [Проданные автомобили].[Код продажи] = Продажа.[Код продажи]

ORDER BY Продажа.Дата_продажи;

Рисунок 4.2.3-результат выполнения запроса

Текст на языке SQL запроса Поиск сведений о клиенте:

SELECT Продажа.Фамилия_покупателя, Продажа.Имя_покупателя, Продажа.Отчество_покупателя, Продажа.Город, Продажа.Адрес, Продажа.Паспортные_данные, Продажа.Телефон

FROM (Должность INNER JOIN Сотрудники ON Должность.Должность_сотрудника = Сотрудники.Должность_сотрудника) INNER JOIN (([Автомобили (в наличии)] INNER JOIN Продажа ON [Автомобили (в наличии)].Код_автомобиля = Продажа.Код_автомобиля) INNER JOIN (Производитель INNER JOIN [Проданные автомобили] ON Производитель.Производитель = [Проданные автомобили].Производитель) ON (Производитель.Производитель = [Автомобили (в наличии)].Производитель) AND ([Проданные автомобили].[Код продажи] = Продажа.[Код продажи]) AND ([Автомобили (в наличии)].Код_автомобиля = [Проданные автомобили].[Код автомобиля])) ON Сотрудники.[Код сотрудника] = Продажа.[Код сорудника]

WHERE (((Продажа.Фамилия_покупателя)=[введите фамилию]));

Рисунок 4.2.4-результат выполнения запроса

Текст на языке SQL запроса на Вычисление количества клиентов автосалона за заданный период:

SELECT Count(Продажа.Фамилия_покупателя) AS Количество_клиентов

FROM Продажа

WHERE (((Продажа.Дата_продажи) Between [Введите начало периода] And [Введите конец периода]));

Рисунок 4.2.5-результат выполнения запроса

Текст на языке SQL запроса на Ограничение целостности: Автомобиль может быть продан только одному клиенту. SELECT [Автомобили (в наличии)].№_двигателя, [Автомобили (в наличии)].Бронь, [Автомобили (в наличии)].Марка

FROM [Автомобили (в наличии)]

WHERE ((([Автомобили (в наличии)].№_двигателя)=[Введите номер двигателя]));

Рисунок 4.2.6-результат выполнения запроса

Запрос на удаление старых автомобилей:

DELETE [Автомобили (в наличии)].Дата_выпуска

FROM [Автомобили (в наличии)]

WHERE ((([Автомобили (в наличии)].Дата_выпуска)<=[Удалить автомобили с датой выпуска раннней чем заданная Введите дату выпуска]));

Рисунок 4.2.8 – результат выполнения запроса.

Рисунок 4.2.8.-Удаление

После того как была нажата кнопка «Удаление» появиться вопрос с подтверждением (рисунок 4.2.9).

Рисунок 4.2.9.

Если подтвердить, то удаление будет совершенно.