Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
ІНСТИТУТ ПІСЛЯДИПЛОМНОЇ ОСВІТИ
/
ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ №4
на тему:
«Основні інструкції мови SQL. Багатотабличні запити на вибірку»
з курсу:
"Бази даних"
Львів – 2014
Мета: Вивчення основних принципів та типів об’єднання у багатотабличних запитах на вибірку.
Хід роботи
Приклад 1. Запит до навчальної бази даних, який повертає для усіх операцій купівлі-продажу на суму біль 1000, ім’я замовника, розміщення замовника, суму операції купівлі-продажу та її дату.
SELECT
cus.cname,
cus.city,
ord.amt,
ord.odate
FROM Customers cus
JOIN Orders ord
ON cus.cnum = ord.cnum
WHERE
ord.amt > 1000
Результатом зображено на рис. 1:
/
Рис. 1. Запит до прикладу 1
Приклад 2. Запит до навчальної бази даних, який повертає для усіх операцій купівлі-продажу на суму біль 1000, ім’я замовника, розміщення замовника, суму операції купівлі-продажу та її дату. Умову об’єднання вказано у виразі WHERE.
SELECT
cus.cname,
cus.city,
ord.amt,
ord.odate
FROM Customers cus, Orders ord
WHERE
ord.amt > 1000
AND cus.cnum = ord.cnum
Результатом зображено на рис. 2:
/
Рис. 2. Запит до прикладу 2
Приклад 3. Запит до навчальної бази даних, який повертає дані про усіх продавців та проведені ними операції-купівлі продажу. Продавці, котрі не провели жодної операції купівлі продажу теж потраплять у список вибірки. (Для того, щоб спостерігати відмінності між результатами наведеного нижче скрипта та скрипта із застосуванням операції внутрішнього об’єднання рекомендується у таблицю Salers додати нового продавця).
SELECT
sal.sname,
sal.comm,
ord.amt,
ord.odate
FROM Salers sal
LEFT JOIN Orders ord
ON sal.snum = ord.snum
Результатом зображено на рис. 3:
/
Рис. 3. Запит до прикладу 3
Приклад 4. Запит до навчальної бази даних, який повертає дані про операції купівлі-продажу проведені продавцем із замовниками, які йому не призначені.
SELECT
cus.cname,
ord.amt,
ord.odate
FROM Customers cus
JOIN Orders ord
ON cus.cnum = ord.cnum
AND cus.snum != ord.snum
Результатом зображено на рис. 4:
/
Рис. 4. Запит до прикладу 4
Приклад 5. Запит до навчальної бази даних, що для усіх проведених операцій купівлі-продажу повертає дані про продавця, покупця та суму операції.
SELECT
sal.sname,
ord.amt,
cus.cname
FROM Salers sal
JOIN Orders ord
ON sal.snum = ord.snum
JOIN Customers cus
ON ord.cnum = cus.cnum
Результатом зображено на рис. 5:
/
Рис. 5. Запит до прикладу 5
Висновки:
На даній лабораторній роботі я вивчив основні принципи та типи об’єднання у багатотабличних запитах на вибірку.