Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
True_kursach_s_titul.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.08 Mб
Скачать

2.3 Аналіз бізнес-логіки обробки даних у предметній області та визначення основних типів запитів у системі

Для роботи з базою даних використовуються запити. Запит (query) – це засіб вибору необхідної інформації з бази даних. Питання, сформований по відношенню до бази даних, і є запит. Застосовуються два типи запитів: за зразком Query by example (QBE) і структурований мова запитів – Structured Query Language (SQL). QBE – засіб для відшукання необхідної інформації в базі даних. Він формується не на спеціальній мові, а шляхом заповнення бланка запиту у вікні Конструктора запитів. SQL-запити – це запити, які складаються (програмістами) з послідовності SQL-інструкцій. Ці інструкції задають, що треба зробити з вхідним набором даних для генерації вихідного набору. Всі запити Access будує на основі SQL-запитів, щоб подивитися їх, необхідно в активному вікні проектування запиту виконати команду Вид / SQL [23].

Існує кілька типів запитів: на вибірку, на оновлення, на додавання, на видалення, перехресний запит, створення таблиць. Найбільш поширеним є запит на вибірку. Запити на вибірку використовуються для відбору потрібної користувачу інформації, що міститься в таблицях. Вони створюються тільки для пов'язаних таблиць. Існують такі види запитів

- на вибірку;

- на додавання;

- на видалення.

- вкладений;

- прилучений;

MySQL дозволяє включати один запит до складу іншого. Вкладені запити називають також підлеглими. Вкладений запит у складі запиту SELECT поміщається в круглі дужки. Спочатку виконується вкладений запит, a потім отримані результати використовуються при обробці головного запиту. Оператор внутрішнього сполучення INNER JOIN з'єднує дві таблиці. Порядок таблиць для оператора неважливий, оскільки оператор симетричний. У випадку з left join з головної таблиці будуть вибрані всі записи, навіть якщо в присоединяемой таблиці немає збігів, тобто умова condition не враховує приєднувану праву табліцу.Right join відображає всі рядки задовольняють правій частині умови condition, навіть якщо вони не мають відповідності у головній лівої таблиці

В ході виконання КП було реалізовано ряд запитів.

Запит, що виконує вибірку читача на ім’я Ігор.

SELECT * FROM reader WHERE first_Name_reader LIKE 'Ігор';

Запит що виконує збірку книг замовлених читачем з ім’ям Ігор

SELECT Name_book FROM book WHERE Printed_matter_id IN

(SELECT Printed_matter_id FROM orderr WHERE reader_id IN

(SELECT reader_id FROM reader WHERE first_Name_reader LIKE 'Ігор')

);

Запит, що змінює імя всіх людей з фамілією Шураєв на Олег

UPDATE reader

SET first_Name_reader = 'Олег'

WHERE last_Name_reader='Шураєв'

Запит, змінює назву книги з назвою Бульба на повну назву – Тарас Бульба.

UPDATE book

SET Name_book = 'Тарас Бульба'

WHERE Name_book = 'Бульба'

Даний запит виконує видалення усіх читачів з ім’ям Арес .

DELETE FROM reader

WHERE first_Name_reader LIKE '%Арес'

Запит, що видаляє книгу з назвою Тарас Бульба з бібліотеки.

DELETE FROM book

WHERE Name_book LIKE '%Тарас Бульба'

Запит, що виконує вибірку книг і їх жанрів.

SELECT

`genre`.`Name_genre`,

`book`.`Name_book`

FROM

`book`

LEFT OUTER JOIN `genre` ON (`book`.`Genre_id` = `genre`.`Genre_id`)

GROUP BY

`genre`.`Name_genre`,

`book`.`Name_book`

Запит, що виконує вибірку книг з інформацією про їх авторів, жанр та серію.

SELECT

`genre`.`Name_genre`,

`book`.`Name_book`,

`series`.`Name_series`,

`series`.`Number`,

`author`.`first_Name`,

`author`.`last_Name`

FROM

`series`

INNER JOIN `book` ON (`series`.`Series_id` = `book`.`Series_id`)

INNER JOIN `genre` ON (`book`.`Genre_id` = `genre`.`Genre_id`)

INNER JOIN `author` ON (`book`.`Author_id` = `author`.`Author_id`)

GROUP BY

`genre`.`Name_genre`,

`book`.`Name_book`,

`series`.`Name_series`,

`series`.`Number`,

`author`.`first_Name`,

`author`.`last_Name`

Запит який здійснює вибірку читачів замовивши книгу з автором на імя Дмитро.

SELECT first_Name_reader,last_Name_reader FROM reader WHERE Reader_id IN

(SELECT Printed_matter_id FROM orderr WHERE Printed_matter_id IN

(SELECT Book_id FROM book WHERE author_id IN

(SELECT Author_id FROM author WHERE first_Name = 'Дмитро')

)

)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]