CSS: wśród selektorów część 1.
23 października, 2024Przykład kodu CSS: Kod HTML do przykładu: Elementy języka html możemy modyfikować za pomocą wielu znaczników klas, które mogą być...
Czytaj dalejInstrukcja warunkowa jest elementem języka SQL, który pozwala na automatyczne sterowanie wykonywaniem się kwerend. Szczególnie dobrze sprawdzi się oczywiście w wyzwalaczach i procedurach składowanych, które dzięki niej będą lepiej sterowalne. Jeżeli nie znasz teorii programowania dotyczącej właśnie warunków i instrukcji sterującej If zapraszam do zapoznania się z wpisem na naszym blogu. LINK.
Przejdźmy więc do syntaxu. Wygląda on następująco:
IF warunek THEN -- kod, który zostanie wykonany, jeśli warunek jest spełniony ELSE -- kod, który zostanie wykonany, jeśli warunek nie jest spełniony END IF;
Warunek używany po IF niczym nie różni się od tego stosowanego po klauzurze WHERE lub HAVING. Oczywiście warunki złożone możemy łączyć za pomocą słów AND oraz OR, działa też negacja słowem NOT. Napiszmy więc kilka instrukcji warunkowych, aby lepiej zrozumieć ich działanie.
DELIMITER // CREATE PROCEDURE ocen(IN id_gry INT) BEGIN DECLARE pozytywnych INT; DECLARE negatywnych INT; SELECT COUNT(*) INTO pozytywnych FROM oceny WHERE oceny.id_gry = id_gry AND oceny.ocena > 5; SELECT COUNT(*) INTO negatywnych FROM oceny WHERE oceny.id_gry = id_gry AND oceny.ocena <= 5; IF pozytywnych > negatywnych THEN SELECT id_gry AS identyfikator, 'w większości pozytywne' AS komentarz; ELSE SELECT id_gry AS identyfikator, 'w większości negatywne' AS komentarz; END IF; END // DELIMITER ;
Ta procedura ma sprawdzić, czy opinii pozytywnych jest więcej niż negatywnych. Pobierane więc są dwie wartości – ilość ocen > 5 i ilość mniejszych od 5. Następnie instrukcja warunkowa porównuje ilość ocen pozytywnych i negatywnych, aby określić komentarz.
Teraz napiszmy trigger, który dokona walidacji danych wprowadzonych w instrukcji UPDATE. Jeżeli zmieniona ocena nie należy do przedziału od 1 do 10, to przerwie wykonywanie operacji, poprzez polecenie SIGNAL SQLSTATE.
CREATE TRIGGER sprawdz_ocena BEFORE UPDATE ON oceny FOR EACH ROW BEGIN IF NEW.ocena < 1 OR NEW.ocena > 10 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Wartość pola ocena powinna być w zakresie od 1 do 10.'; END IF; END;
Przetestujmy:
UPDATE `oceny` SET `ocena`=-1 WHERE `id_gry`=1 AND `id_gracza`=1
MySQL zwrócił komunikat: #1644 - Wartość pola ocena powinna być w zakresie od 1 do 10
.
Ocena pozostała również niezmieniona.
Przykład kodu CSS: Kod HTML do przykładu: Elementy języka html możemy modyfikować za pomocą wielu znaczników klas, które mogą być...
Czytaj dalejPrzypadki (z ang. Case) są alternatywą wobec instrukcji warunkowej. W standardowych językach programowa takich jak C++, Javascript czy PHP łączone...
Czytaj dalejChoć na pierwszy rzut oka SQL niewiele ma wspólnego z typowymi językami programowania, znajdziemy w nim elementy z nich zaczerpnięte....
Czytaj dalej