CREATE TABLE Studenci ( Identyfikator NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, Imie VARCHAR2(50), Nazwisko VARCHAR2(50), Kierunek VARCHAR2(50), Nr_albumu VARCHAR2(6) UNIQUE, Srednia NUMBER(4,2), Stypendium NUMBER CHECK (Stypendium BETWEEN 0 AND 5000), Data DATE NOT NULL, CONSTRAINT CHK_DATA CHECK (Data BETWEEN TO_DATE('2010-01-01', 'YYYY-MM-DD') AND TO_DATE('2025-01-20', 'YYYY-MM-DD')) ); INSERT INTO Studenci VALUES (DEFAULT,'Jan', 'Kowalski', 'Teleinformatyka', '123456', 4.5, 1000, TO_DATE('2018-10-01', 'YYYY-MM-DD')); INSERT INTO Studenci VALUES (DEFAULT, 'Anna', 'Nowak', 'Informatyka', '654321', 4.2, 1500, TO_DATE('2019-10-01', 'YYYY-MM-DD')); INSERT INTO Studenci VALUES (DEFAULT, 'Piotr', 'Wiśniewski', 'Elektronika', '345678', 3.8, 800, TO_DATE('2017-10-01', 'YYYY-MM-DD')); INSERT INTO Studenci VALUES (DEFAULT, 'Maria', 'Zielińska', 'Teleinformatyka', '876543', 4.9, 2000, TO_DATE('2016-10-01', 'YYYY-MM-DD')); SELECT * FROM Studenci ORDER BY NR_ALBUMU ASC; SELECT * FROM Studenci WHERE EXTRACT(YEAR FROM Data) BETWEEN 2015 AND 2020; UPDATE Studenci SET STYPENDIUM = STYPENDIUM * 1.25 WHERE Kierunek = 'Teleinformatyka'; SELECT * FROM Studenci ORDER BY NR_ALBUMU ASC; SELECT * FROM STUDENCI OFFSET 1 ROWS FETCH NEXT 3 ROWS ONLY; SELECT NAZWISKO, EXTRACT(YEAR FROM DATA) AS ROK, EXTRACT(MONTH FROM DATA) AS MIESIAC, EXTRACT(DAY FROM DATA) AS DAY FROM STUDENCI WHERE KIERUNEK = 'Teleinformatyka'; SELECT SUBSTR(KIERUNEK, 1, 3) || NR_ALBUMU AS KOD FROM STUDENCI; SELECT CASE WHEN STYPENDIUM < 3000 THEN 'MNIEJSZE' WHEN STYPENDIUM = 3000 THEN 'ROWNE' WHEN STYPENDIUM > 3000 THEN 'WIEKSZE' END AS COS FROM STUDENCI; SELECT NAZWISKO, NR_ALBUMU, FLOOR(MONTHS_BETWEEN(SYSDATE, DATA)) AS LICZBA_MIEISECY FROM STUDENCI; SELECT MIN(STYPENDIUM), AVG(STYPENDIUM), MAX(STYPENDIUM) FROM STUDENCI; SELECT AVG(STYPENDIUM), KIERUNEK, COUNT(*) FROM STUDENCI GROUP BY KIERUNEK; SELECT Nazwisko FROM Studenci WHERE Kierunek = 'Teleinformatyka' AND Data = (SELECT MIN(Data) FROM Studenci WHERE Kierunek = 'Teleinformatyka'); SELECT Kierunek FROM (SELECT Kierunek, COUNT(*) AS Liczba_Studentow FROM Studenci GROUP BY Kierunek ORDER BY Liczba_Studentow DESC) WHERE ROWNUM = 1; CREATE TABLE Przedmioty ( Identyfikator NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, Przedmiot VARCHAR2(100) UNIQUE NOT NULL, Kierunek VARCHAR2(100) NOT NULL, Egzamin CHAR(3), Wykłady NUMBER DEFAULT 15, Laboratoria NUMBER ); ALTER TABLE STUDENCI ADD CONSTRAINT CHK_KIERUNEK CHECK (KIERUNEK IN ('Teleinformatyka', 'Informatyka', 'Elektronika')); ALTER TABLE Przedmioty ADD CONSTRAINT Wykłady_Przedział CHECK (Wykłady BETWEEN 0 AND 90); INSERT INTO Przedmioty (Przedmiot, Kierunek, Egzamin, Wykłady, Laboratoria) VALUES ('Bazy Danych', 'Teleinformatyka', 'TAK', 30, 15); INSERT INTO Przedmioty (Przedmiot, Kierunek, Egzamin, Wykłady, Laboratoria) VALUES ('Algorytmy', 'informatyka', 'NIE', 45, 20); INSERT INTO Przedmioty (Przedmiot, Kierunek, Egzamin, Wykłady, Laboratoria) VALUES ('Programowanie', 'elektronika', 'TAK', 60, 25); INSERT INTO Przedmioty (Przedmiot, Kierunek, Egzamin, Wykłady, Laboratoria) VALUES ('Sieci Komputerowe', 'teleinformatyka', 'TAK', 30, 20); SELECT DISTINCT S.Nazwisko, S.Nr_albumu FROM Studenci S JOIN Przedmioty P ON S.Kierunek = P.Kierunek WHERE P.Przedmiot = 'Bazy Danych'; SELECT S.Nazwisko, S.Nr_albumu, COUNT(P.Przedmiot) AS Liczba_Egzaminów FROM Studenci S JOIN Przedmioty P ON S.Kierunek = P.Kierunek WHERE P.Egzamin = 'TAK' GROUP BY S.Nazwisko, S.Nr_albumu;