bd
        CREATE TABLE Studenci (
    Identyfikator NUMBER(4) GENERATED ALWAYS AS IDENTITY,
    Imie VARCHAR(30),
    Nazwisko VARCHAR(30),
    Kierunek VARCHAR(30),
    Album NUMBER(6) UNIQUE,
    Srednia NUMBER(5,2) CHECK (Srednia >= 0 AND Srednia <= 5),
    Stypendium NUMBER(4) CHECK (Stypendium >= 0 AND Stypendium <= 500),
    Data DATE CHECK (Data >= TO_DATE('2010-01-01', 'YYYY-MM-DD'))
);
ALTER TABLE Studenci
ADD CONSTRAINT PK_Studenci PRIMARY KEY (Identyfikator);
INSERT INTO Studenci(Imie, Nazwisko, Kierunek, Album, Srednia, Stypendium, Data) 
VALUES ('Bartek', 'Gabruk', 'Teleinformatyka', 157546, 4.0, 100, TO_DATE('2015-10-10', 'YYYY-MM-DD'));
INSERT INTO Studenci(Imie, Nazwisko, Kierunek, Album, Srednia, Stypendium, Data) 
VALUES ('Jan', 'Nowak', 'Teleinformatyka', 154040, 3.0, 200, TO_DATE('2017-10-10', 'YYYY-MM-DD'));
INSERT INTO Studenci(Imie, Nazwisko, Kierunek, Album, Srednia, Stypendium, Data) 
VALUES ('Antoni', 'Kowalski', 'Zarzadzanie', 178090, 4.2, 250, TO_DATE('2012-08-08', 'YYYY-MM-DD'));
INSERT INTO Studenci(Imie, Nazwisko, Kierunek, Album, Srednia, Stypendium, Data) 
VALUES ('Janusz', 'Poiotrowicz', 'Informatyka', 202020, 3.8, 100, TO_DATE('2012-02-03', 'YYYY-MM-DD'));
select * from studenci order by Album ASC;
SELECT *  FROM Studenci WHERE Data BETWEEN TO_DATE('2015-01-01', 'YYYY-MM-DD') AND TO_DATE('2020-12-31', 'YYYY-MM-DD') ORDER BY Album ASC;
UPDATE Studenci SET Stypendium = Stypendium * 1.25;
SELECT * FROM ( SELECT * FROM Studenci ORDER BY Srednia DESC) 
WHERE ROWNUM BETWEEN 2 AND 4 ORDER BY Srednia DESC;
SELECT 
    Nazwisko, 
    EXTRACT(YEAR FROM Data) AS Rok,
    EXTRACT(MONTH FROM Data) AS Miesiac,
    EXTRACT(DAY FROM Data) AS Dzien
FROM Studenci
WHERE Kierunek = 'Teleinformatyka';
SELECT Nazwisko, (SUBSTR(Kierunek, 1, 3)  || Album) AS KOD FROM Studenci;
SELECT Nazwisko, Stypendium,
    CASE 
        WHEN Stypendium < 3000 THEN 'Mniejsze niż 3000 zł'
        WHEN Stypendium = 3000 THEN 'Równe 3000 zł'
        ELSE 'Większe niż 3000 zł'
    END AS Stypendium FROM Studenci;
//zad10
SELECT  Nazwisko, Album, FLOOR(MONTHS_BETWEEN(SYSDATE, Data)) AS Miesiace FROM Studenci;
select MIN(Stypendium), AVG(Stypendium), MAX(Stypendium) FROM Studenci;
select Kierunek, AVG(Stypendium), COUNT(*) AS liczba_studentow FROm Studenci group by Kierunek;
SELECT Nazwisko FROM Studenci  WHERE Data = (SELECT MIN(Data) FROM Studenci) FETCH FIRST 1 ROW ONLY;
SELECT Kierunek FROM Studenci GROUP BY Kierunek HAVING COUNT(*) = (
    SELECT MAX(Liczba) 
    FROM ( SELECT COUNT(*) AS Liczba  FROM Studenci GROUP BY Kierunek
    )
);
CREATE TABLE Przedmioty (
    Identyfikator NUMBER(4) GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    Przedmiot VARCHAR(30) UNIQUE,
    Kierunek VARCHAR(30) NOT NULL,
    Egzamin VARCHAR(3),
    Wyklady NUMBER(6) DEFAULT 15,
    Laboratoria NUMBER(20)
);
ALTER TABLE Studenci ADD CONSTRAINT CK_Kierunek CHECK (Kierunek IN ('Teleinformatyka', 'Informatyka', 'Elektronika'));
INSERT INTO Przedmioty(Przedmiot, Kierunek, Egzamin, Wyklady, Laboratoria) 
VALUES ('bazy danych','Teleinformatyka','tak', 10, 15);
INSERT INTO Przedmioty(Przedmiot, Kierunek, Egzamin, Wyklady, Laboratoria) 
VALUES ('Algorytmy','Informatyka','nie', 8, 8);
INSERT INTO Przedmioty(Przedmiot, Kierunek, Egzamin, Wyklady, Laboratoria) 
VALUES ('Sieci','Informatyka','tak',12,12);
INSERT INTO Przedmioty(Przedmiot, Kierunek, Egzamin, Wyklady, Laboratoria) 
VALUES ('programowanie','Teleinformatyka','nie', 14, 10);
//zad 19
SELECT COUNT(*) AS liczba_studcentow FROM Studenci s JOIN Przedmioty p ON s.Kierunek = p.Kierunek WHERE p.Przedmiot = 'bazy danych';
//zad 20
select s.Nazwisko, COUNT(*) FROM Studenci s Join przedmioty p ON s.Kierunek = p.Kierunek;