Zadanie 1: Łączenie Tabel - INNER JOIN

Utwórz zapytanie SQL, które wyświetli dane studentów oraz dane o zakwaterowaniu, używając INNER JOIN.

SELECT s.ID, s.Nr_albumu, z.Rok_akad, w.Data_wpłaty FROM tStudenci s INNER JOIN tZakwaterowanie z ON s.ID = z.ID_studenta INNER JOIN tWpłaty w ON s.ID = w.ID WHERE w.Za_rok_akad = 2024 ORDER BY s.ID;

Zadanie 2: Łączenie Tabel - LEFT JOIN

Utwórz zapytanie SQL, które wyświetli wszystkich studentów, nawet jeśli nie zapłacili za zakwaterowanie, używając LEFT JOIN.

SELECT s.ID, s.Nr_albumu, z.Rok_akad, w.Data_wpłaty FROM tStudenci s LEFT JOIN tZakwaterowanie z ON s.ID = z.ID_studenta LEFT JOIN tWpłaty w ON s.ID = w.ID WHERE w.Za_rok_akad = 2024 ORDER BY s.ID;

Zadanie 3: Subzapytania - Zapłata większa niż średnia

Utwórz zapytanie SQL, które wyświetli studentów, którzy zapłacili więcej niż średnia wpłat w 2024 roku, korzystając z subzapytania.

SELECT ID, Nr_albumu FROM tStudenci WHERE ID IN ( SELECT ID FROM tWpłaty WHERE Za_rok_akad = 2024 GROUP BY ID HAVING SUM(Wpłata) > ( SELECT AVG(Wpłata) FROM tWpłaty WHERE Za_rok_akad = 2024 ) );

Zadanie 4: Funkcje Agregujące - Liczenie liczby studentów

Utwórz zapytanie SQL, które policzy liczbę studentów, którzy zapłacili mniej niż 1000 zł w 2024 roku.

SELECT COUNT(DISTINCT ID) AS Liczba_studentow FROM tWpłaty WHERE Za_rok_akad = 2024 GROUP BY ID HAVING SUM(Wpłata) < 1000;

Zadanie 5: Procedura Składowana - Obliczanie całkowitej kwoty wpłat

Utwórz procedurę składowaną, która obliczy całkowitą kwotę wpłat dla danego studenta w danym roku akademickim.

DELIMITER // CREATE PROCEDURE Oblicz_Wplaty(IN studentID INT, IN rok INT) BEGIN SELECT SUM(Wpłata) AS Całkowita_wplata FROM tWpłaty WHERE ID = studentID AND Za_rok_akad = rok; END // DELIMITER ;

Zadanie 6: Indeksowanie - Tworzenie Indeksu

Utwórz indeks na kolumnie 'ID' w tabeli tWpłaty, aby przyspieszyć zapytania na tej tabeli.

CREATE INDEX idx_id ON tWpłaty(ID);

Zadanie 7: Widoki - Tworzenie Widoku

Utwórz widok, który będzie zawierał sumę wpłat dla każdego studenta w 2024 roku.

CREATE VIEW v_Wplaty AS SELECT ID, SUM(Wpłata) AS Całkowita_wplata FROM tWpłaty WHERE Za_rok_akad = 2024 GROUP BY ID;