Ćwiczenia z baz danych

Ćwiczenie 16: Tworzenie transakcji

START TRANSACTION;
UPDATE klienci SET rabat = 10 WHERE vip = 1;
COMMIT;
    

Ćwiczenie 17: Tworzenie złożonego widoku

CREATE VIEW KlienciZamowienia AS
SELECT k.id_klienta, k.imie, k.nazwisko, COUNT(z.id_zamowienia) AS liczba_zamowien
FROM klienci k
LEFT JOIN zamowienia z ON k.id_klienta = z.id_klienta
GROUP BY k.id_klienta;
    

Ćwiczenie 18: Tworzenie procedury z warunkami

DELIMITER //
CREATE PROCEDURE DodajProdukt(IN nazwa_prod VARCHAR(100), IN cena_prod DECIMAL(10,2), IN kategoria_prod VARCHAR(50))
BEGIN
    IF cena_prod > 0 THEN
        INSERT INTO produkty (nazwa, cena, kategoria) VALUES (nazwa_prod, cena_prod, kategoria_prod);
    ELSE
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Cena musi być większa od zera';
    END IF;
END //
DELIMITER ;
    

Ćwiczenie 19: Tworzenie funkcji użytkownika

DELIMITER //
CREATE FUNCTION ObliczWartoscZamowien(klient_id INT) RETURNS DECIMAL(10,2)
DETERMINISTIC
BEGIN
    DECLARE suma DECIMAL(10,2);
    SELECT SUM(wartosc_zamowienia) INTO suma FROM zamowienia WHERE id_klienta = klient_id;
    RETURN COALESCE(suma, 0);
END //
DELIMITER ;
    

Ćwiczenie 20: Tworzenie indeksu na kolumnie cena

CREATE INDEX idx_cena ON produkty(cena);