Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6сем / курсовая_Жовтяк_4016.docx
Скачиваний:
6
Добавлен:
27.08.2024
Размер:
1.02 Mб
Скачать
  1. Составление требуемых запросов к базе данных

В среде MySQL Workbench была создана база данных, а также описанные выше таблицы с атрибутами, в каждую таблицу были введены данные. Создание базы данных представлено в листинге 1. Создание таблиц представлено в Приложении 1. Добавление данных в таблице представлено в Приложении 2.

Листинг 1 – Создание базы данных

create database tourfirm;

Были написаны запросы [9], которые могут быть полезны для работы с данными, представленными в таблицах.

Запрос 1 выводит информацию о читателе, удовлетворяющие условию, что атрибут ФИО равен значению Тихонов Роман Данилович. Таким образом можно осуществлять поиск информации о читателе, тем самым уменьшать время на его поиски в базе данных. Запрос 1 представлен в листинге 2. Результат выполнения запроса на рисунке 2.

Листинг 2 – Запрос 1

SELECT * FROM my_library.readers

where reader_FIO = 'Тихонов Роман Данилович';

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

Запрос 2 выдаёт перечень читателей, на руках у которых находится указанное произведение с атрибутом, равным Муму. Таким образом, можно найти людей, которые брали определённую книгу. Запрос 2 представлен в листинге 3. Результат выполнения на рисунке 3.

Листинг 3 – Запрос 2

SELECT readers.reader_FIO

FROM my_library.readers, my_library.appeals, my_library.books

where books.title_book = 'Муму' and

appeals.id_reader = readers.id_reader and

appeals.id_book = books.id_book;

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

Запрос 3 позволяет получить перечень читателей и список книг, которые были выданы в определённый день. Так можно легко получить перечень читателей, которые в течение указанного промежутка времени получали издание с некоторым произведением, и название этого издания. Запрос 3 представлен в листинге 4. Результат выполнения на рисунке 4.

Листинг 4 – Запрос 3

SELECT readers.reader_FIO, books.title_book

FROM my_library.readers, my_library.appeals, my_library.books

where appeals.return_day_expected = '2022-10-28' and

appeals.id_reader = readers.id_reader and

appeals.id_book = books.id_book;

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

Запрос 4 позволяет вывести данные о выработке сотрудников, где подсчитывается, сколько сотрудник обработал обращений. Запрос 4 представлен в листинге 5. Результат выполнения на рисунке 5.

Листинг 5 – Запрос 4

SELECT employee.employee_FIO, COUNT(appeals.id_appeal)

FROM my_library.appeals, my_library.employee

WHERE appeals.id_employee = employee.id_employee

GROUP BY appeals.id_employee

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

Запрос 5 выдаёт список читателей и их номер телефона, которые вернули литературу позже оговоренной даты. Так сотрудникам будет легче найти недобросовестных читателей. Запрос 5 представлен в листинге 6. Результат выполнения на рисунке 6.

Листинг 6 – Запрос 5

SELECT readers.reader_FIO, readers.telephone

FROM my_library.appeals, my_library.readers

WHERE appeals.id_reader = readers.id_reader

and appeals.return_day > appeals.return_day_expected

GROUP BY readers.reader_FIO

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

Запрос 6 выводит номера обращений, которые должны быть возвращены в определённый день. Так можно легко найти номера обращений для работы. Запрос 6 представлен в листинге 7. Результат выполнения на рисунке 7.

Листинг 7 – Запрос 6

SELECT id_appeal

FROM my_library.appeals

WHERE DAY(appeals.return_day_expected) = 20;

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

Запрос 7 выводит имена людей и их телефоны, которые делали хотя бы одно обращение в библиотеку. Так можно библиотекари могут делать холодный обзвон для предложения новой книги. Запрос 7 представлен в листинге 8. Результат выполнения на рисунке 8.

Листинг 8 – Запрос 7

select DISTINCT readers.reader_FIO, readers.telephone

from my_library.appeals, my_library.readers

where appeals.id_reader = readers.id_reader

order by readers.reader_FIO

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

Запрос 8 выводит количество обращений каждого читателя к библиотеке. Так можно оценить постоянных клиентов. Запрос 8 представлен в листинге 9. Результат выполнения на рисунке 8.

Листинг 9 – Запрос 8

SELECT DISTINCT readers.reader_FIO, COUNT(appeals.id_appeal)

FROM my_library.appeals, my_library.readers

WHERE appeals.id_reader = readers.id_reader

GROUP BY readers.reader_FIO

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

Запрос 9 выводит максимальный депозит книги автора. Так можно оценить, какой автор больше ценится. Запрос 9 представлен в листинге 10. Результат выполнения на рисунке 10.

Листинг 10 – Запрос 9

SELECT authors.author_FIO, MAX(books.deposit)

FROM my_library.authors, my_library.books

WHERE authors.id_author = books.id_author

GROUP BY authors.author_FIO

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

Запрос 10 выводит номера обращений, стоимость по которым больше 200. Так можно оценить продажи библиотеки. Запрос 10 представлен в листинге 11. Результат выполнения на рисунке 11.

Листинг 11 – Запрос 10

SELECT appeals.id_appeal, total

FROM my_library.appeals

WHERE appeals.total > 200

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

Соседние файлы в папке 6сем