🚀 Вийди на новий рівень крипто-торгівлі!
Easy Trade Bot — автоматизуй свій прибуток уже зараз!

Ми пропонуємо перелік перевірених прибуткових стратегій на такі пари як BTC, DOT, TRX, AAVE, ETH, LINK та інші. Ви можете підключити автоматичну торгівлю на своєму акаунті Binance або отримувати торгові рекомендації на email у режимі реального часу. Також можемо створити бота для обраної вами монети.

Всі результати торгів ботів доступні для перегляду у зручних таблицях на головній сторінці. Швидко, динамічно та прозоро!

Перейти до бота + 30$ бонус

Об’єднання таблиць за допомогою операторів JOIN (LEFT, RIGHT, INNER), використання індексів

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
ПЦБ
Кафедра:
Кафедра електронних обчислювальних машин

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

Рік:
2025
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Організація баз даних
Група:
КІ

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Інститут комп’ютерних технологій, автоматики та метрології  кафедра “Електронних обчислювальних машин” / Звіт з лабораторної роботи №3 дисципліни «Організація баз даних» на тему: «Об’єднання таблиць за допомогою операторів JOIN (LEFT, RIGHT, INNER), використання індексів» Варіант 8 ЛАБОРАТОРНА РОБОТА №3 Об’єднання таблиць за допомогою операторів JOIN (LEFT, RIGHT, INNER), використання індексів Мета роботи: отримати навики використання операторів JOIN та індексів Хід роботи Використовуючи таблиці, що створені у лабораторній роботі No2 визначити і створити необхідні індекси, вибір обгрунтувати Використовуючи створені таблиці написати запити: (  1 запит із використанням оператора INNER JOIN (  1 запит із використанням оператора LEFT JOIN (  1 запит із використанням оператора RIGHT JOIN (  1 запит із використанням будь-якого оператора JOIN + довільні оператори із лабораторній роботі №2 При захисті лабораторноі роботи взяти індивідуальне завдання у викладача. Варіант Завдання  8 База даних автосалону   Виконання завдання -- Створюємо базу даних для автосалону CREATE DATABASE CAR_DEALERSHIP; GO USE CAR_DEALERSHIP; GO -- Таблиця співробітників CREATE TABLE Employees ( employee_id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, position VARCHAR(100) NOT NULL, salary DECIMAL(10, 2) NOT NULL ); GO -- Таблиця автомобілів CREATE TABLE Cars ( car_id INT PRIMARY KEY, brand VARCHAR(100) NOT NULL, model VARCHAR(100) NOT NULL, year INT NOT NULL, price DECIMAL(10, 2) NOT NULL ); GO -- Таблиця клієнтів (посилається на менеджера із таблиці Employees) CREATE TABLE Customers ( customer_id INT PRIMARY KEY, first_name VARCHAR(100) NOT NULL, last_name VARCHAR(100) NOT NULL, date_of_birth DATE, -- можна використовувати DATE або DATETIME phone VARCHAR(25), email VARCHAR(100), personal_manager_id INT, FOREIGN KEY (personal_manager_id) REFERENCES Employees (employee_id) ); GO -- Таблиця особливостей автомобілів (ключова комбінація car_id + feature_name) CREATE TABLE Car_Features ( car_id INT NOT NULL, feature_name VARCHAR(100) NOT NULL, PRIMARY KEY (car_id, feature_name), FOREIGN KEY (car_id) REFERENCES Cars (car_id) ); GO -- Таблиця продажів (посилається на автомобілі та співробітників) CREATE TABLE Sales ( sale_id INT PRIMARY KEY, car_id INT, employee_id INT, sale_date DATE, total_price DECIMAL(10, 2), FOREIGN KEY (car_id) REFERENCES Cars (car_id), FOREIGN KEY (employee_id) REFERENCES Employees (employee_id) ); GO -- Додавання даних до таблиці Employees INSERT INTO Employees (employee_id, first_name, last_name, position, salary) VALUES (1, 'John', 'Smith', 'Sales Manager', 60000.00), (2, 'Emily', 'Johnson', 'Sales Representative', 45000.00), (3, 'Michael', 'Brown', 'Service Manager', 55000.00), (4, 'Sarah', 'Davis', 'Finance Specialist', 50000.00), (5, 'David', 'Wilson', 'Sales Representative', 45000.00), (6, 'Jennifer', 'Martinez', 'Customer Service', 40000.00), (7, 'Robert', 'Anderson', 'Mechanic', 48000.00), (8, 'Lisa', 'Taylor', 'Marketing Specialist', 52000.00), (9, 'Thomas', 'Jones', 'Sales Representative', 45000.00), (10, 'Jessica', 'Clark', 'General Manager', 75000.00); -- Додавання даних до таблиці Cars INSERT INTO Cars (car_id, brand, model, year, price) VALUES (1, 'Toyota', 'Camry', 2023, 28999.99), (2, 'Honda', 'Accord', 2023, 30499.99), (3, 'Ford', 'Mustang', 2023, 40999.99), (4, 'Chevrolet', 'Silverado', 2023, 45500.00), (5, 'BMW', 'X5', 2023, 65000.00), (6, 'Mercedes', 'C-Class', 2023, 55000.00), (7, 'Audi', 'A4', 2023, 52000.00), (8, 'Tesla', 'Model 3', 2023, 48000.00), (9, 'Nissan', 'Altima', 2023, 26500.00), (10, 'Volkswagen', 'Golf', 2023, 28000.00); -- Додавання даних до таблиці Customers INSERT INTO Customers (customer_id, first_name, last_name, date_of_birth, phone, email, personal_manager_id) VALUES (1, 'William', 'Johnson', '1985-05-15', '555-123-4567', 'william.johnson@email.com', 1), (2, 'Emma', 'Williams', '1990-03-22', '555-234-5678', 'emma.williams@email.com', 2), (3, 'Oliver', 'Brown', '1978-12-10', '555-345-6789', 'oliver.brown@email.com', 1), (4, 'Sophia', 'Miller', '1995-08-05', '555-456-7890', 'sophia.miller@email.com', 5), (5, 'James', 'Davis', '1982-06-30', '555-567-8901', 'james.davis@email.com', 2), (6, 'Charlotte', 'Garcia', '1988-11-18', '555-678-9012', 'charlotte.garcia@email.com', 9), (7, 'Benjamin', 'Rodriguez', '1975-04-25', '555-789-0123', 'benjamin.rodriguez@email.com', 1), (8, 'Amelia', 'Wilson', '1992-09-12', '555-890-1234', 'amelia.wilson@email.com', 5), (9, 'Henry', 'Anderson', '1980-07-08', '555-901-2345', 'henry.anderson@email.com', 9), (10, 'Mia', 'Thomas', '1998-01-20', '555-012-3456', 'mia.thomas@email.com', 2); -- Додавання даних до таблиці Car_Features INSERT INTO Car_Features (car_id, feature_name) VALUES (1, 'Bluetooth'), (1, 'Backup Camera'), (1, 'Cruise Control'), (2, 'Bluetooth'), (2, 'Navigation'), (3, 'Leather Seats'), (3, 'Sunroof'), (4, 'Four-Wheel Drive'), (4, 'Towing Package'), (5, 'Premium Sound System'), (5, 'Heated Seats'), (5, 'Adaptive Cruise Control'), (6, 'Lane Departure Warning'), (6, 'Parking Sensors'), (7, 'Blind Spot Detection'), (8, 'Autopilot'), (8, 'Electric Range 300 miles'), (9, 'Fuel Efficiency'), (10, 'Compact Size'); -- Додавання даних до таблиці Sales INSERT INTO Sales (sale_id, car_id, employee_id, sale_date, total_price) VALUES (1, 1, 1, '2023-01-15', 28999.99), (2, 3, 2, '2023-01-22', 40999.99), (3, 5, 1, '2023-02-05', 65000.00), (4, 7, 5, '2023-02-18', 52000.00), (5, 9, 9, '2023-03-10', 26500.00), (6, 2, 2, '2023-03-25', 30499.99), (7, 4, 1, '2023-04-08', 45500.00), (8, 6, 5, '2023-04-20', 55000.00), (9, 8, 9, '2023-05-12', 48000.00), (10, 10, 2, '2023-05-30', 28000.00); CREATE INDEX idx_customers_phone ON Customers(phone); CREATE INDEX idx_customers_customer_id ON Customers(customer_id); CREATE INDEX idx_cars_brand ON Cars(brand); CREATE INDEX idx_sales_car_id_employee_id ON Sales(car_id, employee_id); CREATE INDEX idx_car_features_feature_name ON Car_Features(feature_name); CREATE INDEX idx_car_features_car_id_feature_name ON Car_Features(car_id, feature_name); SELECT c.first_name, c.last_name, s.sale_id AS sale_id, s.total_price FROM Customers c LEFT JOIN Sales s ON c.personal_manager_id = s.employee_id; SELECT c.brand AS car_brand, c.model, s.sale_id AS sale_id, s.total_price FROM Sales s RIGHT JOIN Cars c ON s.car_id = c.car_id; SELECT c.brand AS car_brand, cf.feature_name AS feature_name FROM Cars c FULL OUTER JOIN Car_Features cf ON c.car_id = cf.car_id; SELECT c.brand AS car_brand, SUM(s.total_price) AS total_revenue FROM Cars c INNER JOIN Sales s ON c.car_id = s.car_id GROUP BY c.brand; Висновок: В цій лабораторні роботі я отримав навики використання операторів JOIN та індексів.
Антиботан аватар за замовчуванням

25.03.2025 11:03-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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