- •1 Введение
- •2 Основная часть
- •2.1 Постановка задачи
- •3 Проектирование бд
- •3.1 Метод «Сущность-связь»
- •3.2 Метод нормальных форм
- •4.Выбор и обоснование субд
- •5 Физическая реализация
- •5.1 Построение таблиц и схемы данных средствами субд
- •5.2 Создание запросов на языке sql
- •5.3 Создание форм и отчетов
- •6. Руководство пользователя
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.
Если подтвердить, то удаление будет совершенно.