64 lines
2.0 KiB
SQL
64 lines
2.0 KiB
SQL
-- 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;
|
|
|