Baza SQL - Komis samochodowy

Tabela: samochody

CREATE TABLE samochody ( id_samochodu INT PRIMARY KEY, marka VARCHAR(50), model VARCHAR(50), rok INT, cena DECIMAL(10,2) ); INSERT INTO samochody (id_samochodu, marka, model, rok, cena) VALUES (1, 'Toyota', 'Corolla', 2018, 65000), (2, 'BMW', 'X5', 2020, 250000), (3, 'Ford', 'Focus', 2019, 72000), (4, 'Audi', 'A4', 2021, 180000), (5, 'Honda', 'Civic', 2017, 55000);

Tabela: klienci

CREATE TABLE klienci ( id_klienta INT PRIMARY KEY, imie VARCHAR(30), nazwisko VARCHAR(30), telefon VARCHAR(20) ); INSERT INTO klienci (id_klienta, imie, nazwisko, telefon) VALUES (1, 'Jan', 'Kowalski', '600123456'), (2, 'Anna', 'Nowak', '601234567'), (3, 'Piotr', 'Wiśniewski', '602345678');

Tabela: pracownicy

CREATE TABLE pracownicy ( id_pracownika INT PRIMARY KEY, imie VARCHAR(30), nazwisko VARCHAR(30), stanowisko VARCHAR(30) ); INSERT INTO pracownicy (id_pracownika, imie, nazwisko, stanowisko) VALUES (1, 'Marek', 'Zieliński', 'Sprzedawca'), (2, 'Ewa', 'Kaczmarek', 'Kierownik'), (3, 'Tomasz', 'Wójcik', 'Sprzedawca');

Tabela: sprzedaz

CREATE TABLE sprzedaz ( id_sprzedazy INT PRIMARY KEY, id_samochodu INT, id_klienta INT, id_pracownika INT, data_sprzedazy DATE, FOREIGN KEY (id_samochodu) REFERENCES samochody(id_samochodu), FOREIGN KEY (id_klienta) REFERENCES klienci(id_klienta), FOREIGN KEY (id_pracownika) REFERENCES pracownicy(id_pracownika) ); INSERT INTO sprzedaz (id_sprzedazy, id_samochodu, id_klienta, id_pracownika, data_sprzedazy) VALUES (1, 1, 1, 1, '2025-09-01'), (2, 3, 2, 3, '2025-09-05'), (3, 2, 3, 2, '2025-09-10');

Ćwiczenia SQL - Komis samochodowy

Ćwiczenie 1: Lista wszystkich samochodów

SELECT * FROM samochody;

Ćwiczenie 2: Klienci, którzy kupili samochody

SELECT k.imie, k.nazwisko, s.marka, s.model, spr.data_sprzedazy FROM klienci k JOIN sprzedaz spr ON k.id_klienta = spr.id_klienta JOIN samochody s ON spr.id_samochodu = s.id_samochodu;

Ćwiczenie 3: Sprzedawcy i liczba sprzedanych samochodów

SELECT p.imie, p.nazwisko, COUNT(spr.id_sprzedazy) AS liczba_sprzedanych FROM pracownicy p JOIN sprzedaz spr ON p.id_pracownika = spr.id_pracownika GROUP BY p.id_pracownika;

Ćwiczenie 4: Samochody droższe niż 100000

SELECT * FROM samochody WHERE cena > 100000;

Ćwiczenie 5: Łączna wartość sprzedanych samochodów

SELECT SUM(s.cena) AS laczna_wartosc FROM sprzedaz spr JOIN samochody s ON spr.id_samochodu = s.id_samochodu;

Ćwiczenie 6: Najdroższy samochód sprzedany

SELECT s.marka, s.model, s.cena FROM sprzedaz spr JOIN samochody s ON spr.id_samochodu = s.id_samochodu ORDER BY s.cena DESC LIMIT 1;