DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

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

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

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

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

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

Про що ця робота

Звіт до лабораторної роботи присвячено вивченню синтаксису інструкції SELECT та практичному виконанню однотабличних запитів мовою SQL. Розглянуто приклади фільтрації даних, використання агрегатних функцій та групування.

У роботі розглядаються

  • Мова SQL
  • Однотабличні запити
  • Інструкція SELECT
  • Агрегатні функції
  • Фільтрація даних
  • Угруповання даних

Зміст і розділи

  1. Мета роботи
  2. Хід роботи
  3. Вправи
  4. Висновки
Для кого:Студенти вищих навчальних закладів технічних спеціальностей
Викладачі:Павич Н.Я.

Ключові поняття

SQLSELECTWHEREGROUP BYHAVINGCOUNTSUMUNIONЗапитБаза даних

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" ІНСТИТУТ ПІСЛЯДИПЛОМНОЇ ОСВІТИ / ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ №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, отримав практичні навики написання однотабличних запитів.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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