INF.03-01-25.01-SG/sql/s3.sql

64 lines
2.0 KiB
MySQL
Raw Permalink Normal View History

2025-09-10 11:06:16 +00:00
-- 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;