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;