БД_Лаба_4-2
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА № 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
ассистент |
|
|
|
Иванова М.С |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ПРАКТИЧЕСКОЙ РАБОТЕ №4 |
Составление требуемых запросов к базе данных (на языке SQL). |
по курсу: База данных |
|
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4616 |
|
|
|
А.В.Павлов |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2019
Цель работы: Для всех указанных в задании запросов составить соответствующие инструкции на языке SQL. Если в задании указаны отчеты, то для каждого из них разработать запроси составить соответствующую SQL-инструкцию.
Система должна обеспечить выдачу следующих запросов:
- информация о препаратах определенной группы;
- информация о лекарственных средствах в заданном интервале цен;
- информация о лекарственных средствах, переданных в конкретную аптеку;
- список препаратов, поставляемых данным поставщиком;
- вывод информации о принятых и переданных препаратах и их количестве за определенный период;
Создадим первый запрос, который будет выводить нам список препаратов по заданному назначению. Например, мы выполняем запрос и у нас появляется новое диалоговое окно, в которое мы пишем “кашель”, после этого появляется список где выводиться название препарата, его цена, производитель и его тип (капли и т.д).
Листинг 1 – Запрос №1
SELECT Назначение.Назначение, [3НФ_Список препаратов].[Название препарата], [3НФ_Список препаратов].Производитель, [3НФ_Список препаратов].[Цена реализации], [3НФ_Список препаратов].Группа_Код
FROM Группа INNER JOIN (Назначение INNER JOIN [3НФ_Список препаратов] ON Назначение.Код = [3НФ_Список препаратов].Назначение_Код) ON Группа.Код = [3НФ_Список препаратов].Группа_Код
WHERE (((Назначение.Назначение)=[Зачем]));
Рисунок 1 – Запрос назначения
Рисунок 2 – Результат работы запроса №1
Дальше сделаем второй запрос, который будет выводить нам адрес фирмы, если напишем ее название.
Листинг 2 – Запрос №2
SELECT [3НФ_Поставщики].Наименование, [3НФ_Адрес фирмы].Город, [3НФ_Адрес фирмы].[Адрес фирмы]
FROM [3НФ_Адрес фирмы] INNER JOIN 3НФ_Поставщики ON [3НФ_Адрес фирмы].[Код_ад] = [3НФ_Поставщики].[3НФ_Адрес фирмы_Код]
GROUP BY [3НФ_Поставщики].Наименование, [3НФ_Адрес фирмы].Город, [3НФ_Адрес фирмы].[Адрес фирмы]
HAVING ((([3НФ_Поставщики].Наименование)=[Название]));
Рисунок 3 – Вводим название аптеки
Рисунок 4 – Результат работы запроса №2
Запрос №3 будет выводить ФИО человека, если мы введем его зарплату.
Листинг 3 – Запрос №3
SELECT Должности.Зарплата, [3НФ_Работники].ФИО
FROM Должности INNER JOIN 3НФ_Работники ON Должности.Код = [3НФ_Работники].Таблица2_Код
WHERE (((Должности.Зарплата)=[ЗП]));
Рисунок 5 – Ввод зарплаты
Рисунок 6 – Результат работы запроса №3
Следующий запрос ищет препарат по его названию и выводить, его группу, назначение, цену продажи и поставщика.
Листинг 4 – Запрос №4
SELECT Группа.Группа, [3НФ_Список препаратов].[Название препарата], Назначение.Назначение, [3НФ_Список препаратов].[Цена реализации], [3НФ_Список препаратов].Производитель
FROM Группа INNER JOIN (Назначение INNER JOIN [3НФ_Список препаратов] ON Назначение.Код = [3НФ_Список препаратов].Назначение_Код) ON Группа.Код = [3НФ_Список препаратов].Группа_Код
WHERE ((([3НФ_Список препаратов].[Название препарата])=[Название]));
Рисунок 7 – Ввод названия препарата
Рисунок 8 – Результат работы запроса №4
Последний запрос, это вывод всей информации о человеке если мы ввели его ФИО (вводим можно не полностью а только фамилию или имя).
Листинг 5 – Запрос №5
SELECT [3НФ_Работники].ФИО, [3НФ_Работники].[Паспортные данные], [3НФ_Работники].[Номер телефона]
FROM Должности INNER JOIN 3НФ_Работники ON Должности.Код = [3НФ_Работники].Таблица2_Код
GROUP BY [3НФ_Работники].ФИО, [3НФ_Работники].[Паспортные данные], [3НФ_Работники].[Номер телефона]
HAVING ((([3НФ_Работники].ФИО) Like "*" & [ФИО:] & "*"));
Рисунок 9 – Ввод ФИО
Рисунок 10 – Результат запроса №5
Далее делаем запрос на вывод препаратов по заданному диапазону цен.
Листинг 6 – Запрос №6
SELECT [3НФ_Список препаратов].[Название препарата], [3НФ_Список препаратов].Производитель, [3НФ_Список препаратов].[Цена реализации], [3НФ_Список препаратов].Назначение_Код, [3НФ_Список препаратов].Группа_Код
FROM Назначение INNER JOIN (Группа INNER JOIN [3НФ_Список препаратов] ON Группа.Код = [3НФ_Список препаратов].Группа_Код) ON Назначение.Код = [3НФ_Список препаратов].Назначение_Код
WHERE ((([3НФ_Список препаратов].[Цена реализации]) Between [Цена от] And [Цена до]));
Рисунок 11 – Ввод цен
Рисунок 12 – Результат работы запрос №6
Следующий запрос осуществляет поиск информации о принятых и переданных препаратах и их количестве за определенный период.
Листинг 7 – Запрос №7
SELECT Накладная.Количество, Накладная.Дата, Накладная.[№ препарата], [3НФ_Список препаратов].[Цена реализации], [3НФ_Список препаратов].[Название препарата]
FROM [3НФ_Список препаратов] INNER JOIN Накладная ON [3НФ_Список препаратов].Код_преп = Накладная.[№ препарата]
WHERE (((Накладная.Дата)=[ Дата ]));
Рисунок 13 – Ввод даты
Рисунок 14 – Результат работы №7
Далее делаем запрос на вывод списка препаратов, поставляемых данным поставщиком.
Листинг 8 – Запрос №8
SELECT [3НФ_Список препаратов].[Название препарата], [3НФ_Поставщики].Наименование, [3НФ_Список препаратов].[Цена реализации]
FROM 3НФ_Поставщики INNER JOIN ([3НФ_Список препаратов] INNER JOIN Накладная ON [3НФ_Список препаратов].Код_преп = Накладная.[№ препарата]) ON [3НФ_Поставщики].Код_пост = [3НФ_Список препаратов].Производитель
WHERE ((([3НФ_Поставщики].Наименование) Like "*" & [Название компани] & "*"));
Рисунок 15 – Ввод названия производителя
Рисунок 16 – Результат работы №8
Вывод: В ходе практической работы мы сделали запросы с помощью SQL для нашей базы данных
Список использованных источников
-
Преснякова Г.В., Шахомиров А.В. Проектирование реляционных баз данных: учебное пособие. СПб.: ГУАП, 2015. 125с.
-
Карчевский Е.М., Филиппов И.Е., Филиппова И.А. Access 2010 в примерах: учебное пособие. Казань: Казанский университет, 2012. 140с.