-- Utwórz bazę danych dla firmy szkoleniowej CREATE DATABASE IF NOT EXISTS szkolenia CHARACTER SET utf8 COLLATE utf8_unicode_ci; -- Wybierz bazę danych do pracy USE szkolenia; -- Tabela: kategorie_kursow CREATE TABLE IF NOT EXISTS kategorie_kursow ( id INT AUTO_INCREMENT PRIMARY KEY, nazwa VARCHAR(50) NOT NULL UNIQUE, opis TEXT ); -- Wstaw dane do tabeli kategorii INSERT INTO kategorie_kursow (nazwa, opis) VALUES ('podstawowy', 'Kurs przeznaczony dla początkujących'), ('średni', 'Kurs dla osób mających podstawową wiedzę'), ('zaawansowany', 'Kurs dla osób posiadających zaawansowaną wiedzę'); -- Tabela: kursy (z dodanym czasem trwania) CREATE TABLE IF NOT EXISTS kursy ( id INT AUTO_INCREMENT PRIMARY KEY, nazwa VARCHAR(255) NOT NULL, cena DECIMAL(10, 2) NOT NULL, czas_trwania VARCHAR(50) NOT NULL DEFAULT '2 miesiące', id_kategorii INT, FOREIGN KEY (id_kategorii) REFERENCES kategorie_kursow(id), UNIQUE KEY unique_nazwa (nazwa) ); -- Wstaw dane do tabeli kursy z czasem trwania INSERT INTO kursy (nazwa, cena, czas_trwania, id_kategorii) VALUES ('Kurs HTML i CSS', 500.00, '2 miesiące', 1), ('Kurs JavaScript', 700.00, '3 miesiące', 2), ('Kurs React.js', 900.00, '4 miesiące', 3); -- Tabela: miasta CREATE TABLE IF NOT EXISTS miasta ( id INT AUTO_INCREMENT PRIMARY KEY, nazwa VARCHAR(100) NOT NULL UNIQUE ); -- Wstaw dane do tabeli miasta INSERT INTO miasta (nazwa) VALUES ('Warszawa'), ('Katowice'), ('Gdańsk'); -- Tabela: kursy_miasta (relacja wiele-do-wielu: kurs może być w wielu miastach) CREATE TABLE IF NOT EXISTS kursy_miasta ( id_kursu INT NOT NULL, id_miasta INT NOT NULL, PRIMARY KEY (id_kursu, id_miasta), FOREIGN KEY (id_kursu) REFERENCES kursy(id) ON DELETE CASCADE, FOREIGN KEY (id_miasta) REFERENCES miasta(id) ON DELETE CASCADE ); -- Przykładowe przypisanie kursów do miast (każdy kurs w każdym mieście) INSERT INTO kursy_miasta (id_kursu, id_miasta) SELECT k.id, m.id FROM kursy k CROSS JOIN miasta m;