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

Самостійно.

  1. Створіть і виконайте запит: Список всіх замовлень клієнта Петренка.

  2. Створіть і виконайте запит: Повний список книг з назвами та анотаціями. Вказівки. Цей запит повинен об'єднувати дані з двох таблиць - books та book_reviews. З таблиці books виберіть поле books . title, а з таблиці book_reviews- поле book_reviews.review.

Умова об'єднання таблиць - books . ISBN=book_reviews . ISBN

Отже, запит має бути таким

select books.title, book_reviews.review from books, book_reviews where books.ISBN=book_reviews.ISBN;

Створіть і виконайте запит: Список авторів, книги яких були замовлені лише по одному екземпляру.

Вказівки. Запит повинен об'єднувати дані з таблиць books та order_items. З таблиці books необхідно вибрати поле books . author, а з таблиці book_reviews - поле order_items . quantity Умова об'єднання таблиць: books . ISBN = order_ і terns . ISBN and order_items.quantity=l

Отже, запит має бути таким

select books.author, order_items.quantity from books, order_items where books.ISBN=order_items.ISBN and order_iterns.quantity=l ;

cтворіть і виконайте запит: Перелік дат, коли клієнт на прізвище "Петренко" замовляв книги.

Об'єднання трьох і більше таблиць

Об’єднання трьох і більше таблиць виконують у двох випадках:

  • коли необхідно вибрати дані одночасно з двох таблиць, які не мають безпосереднього прямого зв'язку через однойменні ключові поля, але вони зв'язані між собою через одну або декілька інших таблиць;

  • коли необхідно вибрати дані з трьох і більше таблиць одночасно.

Об'єднання трьох і більше таблиць виконується аналогічно простому об'єднанню двох таблиць. Головне правило; таблиці треба об'єднувати попарно через однойменні ключові поля, враховуючи умови об'єднання.

► Приклад. Нехай необхідно одержати список клієнтів, які замовляли книгу по FoxPro.

1. Зверніться до схеми зв'язків між таблицями. Згідно цієї схеми, для побудови такого запиту необхідно об'єднати дані з таблиць customers та books. З таблиці customers необхідно буде вибрати поле customers . name, яке містить імена клієнтів, а з таблиці books - поле books, title, яке містить назви книг.

Отже, запит має починатися такою інструкцією:

select customers.name, books.title

……………………………..

Зауваження. Поле books, title не обов'язково виводити на монітор. Тому початок запиту може бути таким:

select customers.name

2. Зі схеми зв'язків можна побачити, що таблиці customers та books не можна об'єднати безпосередньо тому, що між ними не має прямого зв'язку - вони зв'язані між собою через таблиці orders та order items. Тобто, для побудови запиту необхідно виконати об'єднання чотирьох таблиць, а саме: customers , orders, order_ items та books.

Продовження інструкції запиту:

……………………..

from customers, orders, order_items, books

……………………………..

3. Таблиці об'єднуються попарно через однойменні ключові поля. Крім того, з останньої таблиці books необхідно вибрати лише ті книги, у назві яких міститься слово "FoxPro".

Тому інструкція на запит завершується такою умовою об'єднання:

………………………………

where customers.customerID=orders.customerlD and orders.orderID=order items.orderlD and order_items.ISBN=books.ISBN and books.title like "%FoxPro%";

Повний текст інструкції на запит: select customers.name

from customers, orders, order_items, books

where customers.customerID=orders.customerlD

аnd orders . orderID=order_items . orderlD

and order_items.ISBN=books.ISBN

and books.title like "%FoxPro%";

Ця інструкція вибирає з бази даних імена лише тих клієнтів, хто замовляв книгу no FoxPro.

Виконайте інструкцію на запит, створену у попередньому прикладі. Результат запиту має бути таким:

I name І

1 Иван Иваненко ! І !

!Сидор Сидоренко !

2 rows in set (0.22 sec)

Ознайомтеся з інструкцією і виконайте запит: Список книг, які замовляв клієнт Йван Иваненко. Інструкція на запит:

select books.title

from customers, orders, order_items, books where customers.customerID=orders.customerlD and orders . order I D=order __i terns . orderlD and order_items.ISBN=books.ISBN and customers.пате="Иван Иваненко";

Результат запиту:

title

I MySQL. Библиотека профессионала

1 Visual FoxPro 7. Руководство пользователя с примерами

2 rows in set (0.00 sec)

Самостійно. Створіть і виконайте запити:

  1. Список імен та адрес всіх клієнтів, які замовляли книгу по MySQL

  2. Список всіх книг, які замовляв клієнт на прізвище "Сидоренко".

  3. Перелік дат, коли клієнт на прізвище "Петренко" замовляв книги по PHP.

  4. Відомості про ті замовлення клієнта Сидоренка, коли сума замовлення первищувала 100.

  5. Відомості про всі замовлення клієнта Сидоренка, з указаниям кількості замовлених екземплярів, ціни замовлених книг та загальної суми замовлення.

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