Ć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);