Język SQL: Instrukcja warunkowa
3 czerwca, 2023Instrukcja warunkowa jest elementem języka SQL, który pozwala na automatyczne sterowanie wykonywaniem się kwerend. Szczególnie dobrze sprawdzi się oczywiście w...
Czytaj dalejPrzypadki (z ang. Case) są alternatywą wobec instrukcji warunkowej. W standardowych językach programowa takich jak C++, Javascript czy PHP łączone są ze słowem switch, którego jednak nie znajdziemy w SQL’u. Ich zadaniem jest sterowanie wykonaniem kwerendy. Służą do wyboru określonej drogi postępowania, na podstawie otrzymanej wartości. Dla lepszego zrozumienia logiki tego elementu języka SQL, zapraszam do zapoznania się z wpisem z cyklu teoria programowania, poświęconemu właśnie warunkom logicznym. LINK
Aby stworzyć tą konstrukcję użyjemy słowa kluczowego CASE. Następnie określone warunki poprzedzimy słowem WHEN, a polecenia, które na nie odpowiedzą słowem THEN.Cały syntax wygląda więc tak:
CASE column_name WHEN value1 THEN result1 WHEN value2 THEN result2 ... ELSE result END
CASE możemy umieścić w procedurze albo nawet w kwerendzie. Spójrzmy na ten drugi przypadek. Załóżmy ze piszemy skrypt który ma zliczyć płcie po peselu. Będzie wyglądał on tak:
SELECT CASE WHEN RIGHT(studenci.pesel, 2) % 2 = 0 THEN 'Kobieta' WHEN RIGHT(studenci.pesel, 2) % 2 = 1 THEN 'Mężczyzna' END AS `plec`, COUNT(*) AS liczba_osob FROM studenci GROUP BY `plec`;
Dla porównania oto kod, który zrobi to samo, ale bez użycia instrukcji CASE.
SELECT 'Kobiety' AS `plec`, COUNT(`pesel`) AS `ilosc` FROM `studenci` WHERE RIGHT(`pesel`, 2) % 2 = 0 UNION SELECT 'Mężczyźni' AS `plec`, COUNT(`pesel`) AS `ilosc` FROM `studenci` WHERE RIGHT(`pesel`, 2) % 2 = 1;
Jak widać, dzięki instrukcji warunkowej możemy zmienić łączenie dwóch kwerend na jedną. Moim zdaniem taki zapis (z użyciem CASE) jest trochę ładniejszy (bardziej czytelny i zrozumiały). Porównajmy czasy wykonania obu zapytań. Dla zapisu z UNION otrzymujemy wynik 0,0010s, a zapis używający CASE wykonał się w 0,0008s.
Instrukcja warunkowa jest elementem języka SQL, który pozwala na automatyczne sterowanie wykonywaniem się kwerend. Szczególnie dobrze sprawdzi się oczywiście w...
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 dalejWyzwalacz (ang. Trigger) to pewien zestaw poleceń, wykonywanych automatycznie. Wywoływany jest wtedy, gdy dojdzie do wykonania danej operacji na bazie...
Czytaj dalej