Основні інструкції мови SQL. Однотабличні запити

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут післядипломної освіти
Факультет:
ЗІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Бази даних

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" ІНСТИТУТ ПІСЛЯДИПЛОМНОЇ ОСВІТИ / ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ №3 на тему: «Основні інструкції мови SQL. Однотабличні запити» з курсу: "Бази даних" Львів – 2014 Мета: Вивчення синтаксису інструкції SELECT, отримання практичних навиків написання однотабличних запитів. Хід роботи Вправа 1. Модифікуйте запит з прикладу 1, щоб результатом було повернення лише даних про ім’я замовника та його розміщення. SELECT * FROM Customers Результатом буде запит: SELECT cname, city FROM Customers Виконання зображено на рис. 1. / Рис. 1. Запит до вправи 1 Вправа 2. Модифікуйте запит з прикладу 2, так щоб результатом було повернення списку замовників розміщених у Лондоні або Римі. SELECT cname, city, rating FROM Customers WHERE city = 'London' Результатом буде запит: SELECT cname, city, rating FROM Customers WHERE city = 'London' or city = 'Rome' Виконання зображено на рис. 2. / Рис. 2. Запит до вправи 2 Вправа 3. Модифікуйте запит з прикладу 2, так щоб результатом було повернення списку замовників розміщених за межами Лондона та із рівнем переваги понад 200. Результатом буде запит: SELECT cname, city, rating FROM Customers WHERE city <> 'London' and rating > 200 Виконання зображено на рис. 3. / Рис. 3. Запит до вправи 3 Вправа 4. Модифікуйте запит з прикладу 2, так щоб результатом було повернення списку замовників імена, яких починаються на “Gr” . Результатом буде запит: SELECT cname, city, rating FROM Customers WHERE cname like 'Gr%' Виконання зображено на рис. 4. / Рис. 4. Запит до вправи 4 Вправа 5. Модифікуйте запит з прикладу 2, так щоб результатом було повернення списку замовників у іменах, яких більше 5-ти букв. Результатом буде запит: SELECT cname, city, rating FROM Customers WHERE LEN(cname) > 5 Виконання зображено на рис. 5. / Рис. 5. Запит до вправи 5 Вправа 6. Модифікуйте запит з прикладу 3, так щоб результатом було повернення списку замовників, що не співпрацюють із продавцем Peel, а також із продавцями, у яких комісія перевищує 0,13 . SELECT cname,city,rating FROM Customers WHERE snum NOT IN ( SELECT snum FROM Salers WHERE sname = 'Peel') Результатом буде запит: SELECT cname, city, rating FROM Customers WHERE snum NOT IN ( SELECT snum FROM Salers WHERE sname = 'Peel' or comm > 0.13 ) Виконання зображено на рис. 6. / Рис. 6. Запит до вправи 6 Вправа 7. Модифікуйте запит з прикладу 3, так щоб результатом було повернення списку замовників, що не здійснювали операцію купівлі продажу після 04-09-2013. Результатом буде запит: SELECT cname, city, rating FROM Customers WHERE cnum NOT IN ( SELECT cnum FROM Orders WHERE odate > '2013-09-04' ) Виконання зображено на рис. 7. / Рис. 7. Запит до вправи 7 Вправа 8. Реалізуйте запит, результатом якого є об’єднаний список замовників із вправи 6 та вправи 7 (підказка: для об’єднання результатів двох запитів застосуйте оператор UNION). Результатом буде запит: SELECT cname, city, rating FROM Customers WHERE snum NOT IN ( SELECT snum FROM Salers WHERE sname = 'Peel' or comm > 0.13 ) union SELECT cname, city, rating FROM Customers WHERE cnum NOT IN ( SELECT cnum FROM Orders WHERE odate > '2013-09-04' ) Виконання зображено на рис. 8. / Рис. 8. Запит до вправи 8 Вправа 9. Спробуйте виконати запиит, поясніть помилку, що виникла. SELECT snum, cname, COUNT(cnum) FROM Customers GROUP BY Snum При виконанні виникла помилка: Column 'Customers.cname' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. Це пояснюється тим, що ми не вказали назву агрегатної функції. В запит потрібно внести наступні зміни: SELECT snum, cname, COUNT(cnum) as N FROM Customers GROUP BY snum, cname Виконання зображено на рис. 9. / Рис. 9. Запит до вправи 9 Вправа 10. Реалізуйте запит, котрий підрахує кількість операцій купівлі продажу за кожен з днів. Результатом буде запит: SELECT odate, COUNT(odate) as N FROM Orders GROUP BY Odate Виконання зображено на рис. 10. / Рис. 10. Запит до вправи 10 Вправа 11. Розширте запит із вправи 10, так щоб було враховано лише продавців із комісійними неменшими, аніж 0,12. Результатом буде запит: SELECT odate, COUNT(odate) as N FROM Orders WHERE snum in ( SELECT snum FROM Salers WHERE comm >= 0.12 ) GROUP BY Odate Виконання зображено на рис. 11. / Рис. 11. Запит до вправи 11 Вправа 12. Модифікуйте запит з прикладу 6, так щоб при підрахунку кількості замовників були враховані лише замовники із кодом переваги вищим за 200. SELECT snum, COUNT(cnum) FROM Customers GROUP BY snum HAVING COUNT(cnum) > 2 Результатом буде запит: SELECT rating, COUNT(cnum) AS N FROM Customers GROUP BY rating HAVING (rating) > 200 Виконання зображено на рис. 12. / Рис. 12. Запит до вправи 12 Вправа 13. Реалізуйте запит, що видасть результати про сумарну суму усіх операцій купівлі продажу для кожного дня і по кожному продавцю. У результуючий набір повинні увійти лише ті дні, коли сума операцій перевищила 3000, а до розгляду було прийнято лише операції купівлі-продажу на суму вищу за 100. Результатом буде запит: SELECT odate, snum, SUM(amt) as SumOfSales FROM Orders WHERE amt > 100 GROUP BY odate, snum HAVING SUM(amt) > 3000 Виконання зображено на рис. 13. / Рис. 13. Запит до вправи 13 Висновки: В результаті виконання роботи я ознайомився та вивчив синтаксис інструкції SELECT, отримав практичні навики написання однотабличних запитів.
Антиботан аватар за замовчуванням

02.06.2014 21:06-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!