CREATE DATABASE DziennikUczniowski;
USE DziennikUczniowski;

-- Tabela klas
CREATE TABLE Klasy (
    id_klasy INT AUTO_INCREMENT PRIMARY KEY,
    nazwa_klasy VARCHAR(10) NOT NULL
);

-- Tabela uczniów
CREATE TABLE Uczniowie (
    id_ucznia INT AUTO_INCREMENT PRIMARY KEY,
    imie VARCHAR(50) NOT NULL,
    nazwisko VARCHAR(50) NOT NULL,
    id_klasy INT,
    FOREIGN KEY (id_klasy) REFERENCES Klasy(id_klasy)
);

-- Tabela przedmiotów
CREATE TABLE Przedmioty (
    id_przedmiotu INT AUTO_INCREMENT PRIMARY KEY,
    nazwa_przedmiotu VARCHAR(50) NOT NULL
);

-- Tabela ocen
CREATE TABLE Oceny (
    id_oceny INT AUTO_INCREMENT PRIMARY KEY,
    id_ucznia INT,
    id_przedmiotu INT,
    ocena DECIMAL(3, 1) CHECK (ocena >= 1.0 AND ocena <= 6.0),
    FOREIGN KEY (id_ucznia) REFERENCES Uczniowie(id_ucznia),
    FOREIGN KEY (id_przedmiotu) REFERENCES Przedmioty(id_przedmiotu)
);

-- Wstawienie przykładowych danych do tabeli Klasy
INSERT INTO Klasy (nazwa_klasy) VALUES ('1A'), ('1B'), ('2A'), ('2B');

-- Wstawienie przykładowych danych do tabeli Uczniowie
INSERT INTO Uczniowie (imie, nazwisko, id_klasy) VALUES
('Jan', 'Kowalski', 1),
('Anna', 'Nowak', 1),
('Piotr', 'Wiśniewski', 2),
('Maria', 'Dąbrowska', 3);

-- Wstawienie przykładowych danych do tabeli Przedmioty
INSERT INTO Przedmioty (nazwa_przedmiotu) VALUES ('Matematyka'), ('Fizyka'), ('Informatyka'), ('Język Polski');

-- Wstawienie przykładowych danych do tabeli Oceny
INSERT INTO Oceny (id_ucznia, id_przedmiotu, ocena) VALUES
(1, 1, 4.5),
(1, 2, 3.0),
(2, 1, 5.0),
(2, 3, 4.0),
(3, 4, 3.5),
(4, 2, 5.5),
(4, 3, 4.5);
