Збережені процедури
Збережені процедури MySQL аналогічні процедурам в інших мовах програмування:
вони обробляють вхідні параметри і повертають зухвалою процедурою або пакетом значення у вигляді вихідних параметрів;
вони містять програмні інструкції, які виконують операції у базі даних, зокрема викликають інші процедури;
вони повертають значення стану зухвалої процедури або пакету, таким чином передаючи відомості про успішне або неуспішне завершення (і причини останнього).
Створення процедури, що зберігається
CREATE PROCEDURE getAllClients()
BEGIN
SELECT * FROM clients;
END
CALL getAllClients();
Функції користувача
Функція, що визначається користувачем, є підпрограмою, яка приймає параметри, виконує дії, такі як складні обчислення, а потім повертає результат цих дій у вигляді значення.
Значення, що повертається, має бути скалярним.
Створення функції
CREATE FUNCTION Hello()
RETURNS VARCHAR(30)
BEGIN
DECLARE MyVar
VARCHAR(30);
SET MyVar = ‘Hello World!’;
RETURN MyVar;
END;
SELECT Hello();
Q&A
Дякую всім за заняття!🙌🏻
❗️🎓Тема уроку: 7. Збережені процедури. Користувацькі функції.
Нагадую, що дедлайн здачі домашніх робіт – до наступного уроку.
Якщо виникають складнощі, пишіть, допоможу із задоволенням 😌
Запис лекції тренер опублікує трохи пізніше 🖥
Прості завдання:
Завдання 1: Список клієнтів та їх замовлень. Складіть SQL-запит, який виведе імена всіх клієнтів та ідентифікатори їхніх замовлень. Використовуйте таблиці Customers (з колонками CustomerID, FirstName, LastName) та Orders (з колонками OrderID, CustomerID).
Завдання 2: Товари та їх категорії. Напишіть SQL-запит, який покаже назви всіх товарів та назви категорій, до яких вони належать. Використовуйте таблиці Products (з колонками ProductID, ProductName, CategoryID) та Categories (з колонками CategoryID, CategoryName).
Завдання 3: Інформація про співробітників та їхні відділи. Складіть SQL-запит, щоб отримати імена всіх співробітників та назви відділів, в яких вони працюють. Використовуйте таблиці Employees (з колонками EmployeeID, FirstName, LastName, DepartmentID) та Departments (з колонками DepartmentID, DepartmentName).
Завдання середньої складності:
Завдання 4: Клієнти, які зробили замовлення. Напишіть SQL-запит, який виведе імена лише тих клієнтів, які мають хоча б одне замовлення. Використовуйте таблиці Customers та Orders (з попередніх завдань).
Завдання 5: Замовлення з інформацією про клієнта та товар. Складіть SQL-запит, щоб отримати ідентифікатор замовлення, ім'я клієнта, назву товару та кількість для кожного рядка в таблиці OrderDetails. Використовуйте таблиці Orders (з колонкою OrderID, CustomerID), Customers (з колонками CustomerID, FirstName, LastName), OrderDetails (з колонками OrderDetailID, OrderID, ProductID, Quantity), та Products (з колонками ProductID, ProductName).
Завдання 6: Співробітники та їхні керівники. Припустимо, у таблиці Employees є колонка ManagerID, яка вказує на ідентифікатор керівника співробітника (який також є співробітником). Напишіть SQL-запит, який виведе ім'я співробітника та ім'я його керівника. (Потрібен self-join).
Складніші завдання:
Завдання 7: Клієнти без замовлень. Напишіть SQL-запит, який виведе імена всіх клієнтів, які не мають жодного замовлення в таблиці Orders. Використовуйте таблиці Customers та Orders.
Завдання 8: Середня кількість товарів у замовленні для кожного клієнта. Складіть SQL-запит, щоб отримати ім'я кожного клієнта та середню кількість товарів у його замовленнях. Використовуйте таблиці Customers, Orders та OrderDetails. (Потрібне групування та агрегатні функції).
Завдання 9: Товари, які ніколи не були замовлені. Напишіть SQL-запит, який виведе назви всіх товарів, які не зустрічаються в таблиці OrderDetails. Використовуйте таблиці Products та OrderDetails.
Ці завдання допоможуть вам попрактикуватися з різними типами JOIN (INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN, SELF JOIN) та зрозуміти їхнє застосування у різних сценаріях. Бажаю успіху!