Funkcje: Procedury składowane cz. IV

Procedury składowane to pewnego rodzaju funkcje tablicowe z tym wyjątkiem, że przy procedurach składowanych mamy większe możliwości operacji na danych. Oczywiście wszystko tak jak zwykłe funkcje zapisujemy bezpośrednio na serwerze bazodanowym, a następnie możemy ich użyć na przykład z poziomu jakiejś aplikacji korzystającej z bazy danych.

binary-code-574729_1920

Procedury składowane mogą między innymi modyfikować dane w tabelach i co najważniejsze sprawdzać poprawność przesyłanych wartości. Oznacza to, że na przykład procedura składowana dodająca nowy wiersz w jakiejś tabeli automatycznie po stronie serwera SQL sprawdzi czy dane, które chcemy zapisać są poprawne czyli czy spełniają wcześniej ustalone kryteria.

Stosowanie procedur składowanych zwiększa również wydajność aplikacji. Należy tutaj zwrócić uwagę iż po stronie klienta, przesyłana jest tylko nazwa danej procedury wraz z danymi, a nie na przykład całe zapytanie SQL. Ważne jest również to, że wszystko wykonywane jest bezpośrednio na serwerze bazodanowym, a więc nie musimy po kilka razy przesyłać jakiś informacji.

Tabela pracownicy, na której uruchomimy przykładowe zapytanie:

ID Imie Nazwisko Data_urodzenia Stanowisko Data_zatrudnienia
1 Jan Kowalski 1984-12-23 Programista 1999-12-09
2 Adam Adamiak 1991-08-08 Menadżer 2011-01-31
3 Jakub Kowalik 1990-03-16 Programista 2010-01-04
4 Michał Jakubiak 1981-05-02 Projektant 1998-09-22

Procedury składowane tworzymy bardzo podobnie jak zwykłe funkcje, które zostały opisane w poprzednich częściach tego artykułu.

Napiszmy przykładową procedurę składowaną, która będzie dodawała nowy wiersz do tabeli pracownicy. Musimy tutaj zwrócić uwagę między innymi na to, żeby żadne z pól nie było puste:

Kod ten podobnie jak zwykłe funkcje uruchamiamy w taki sposób (możemy to również zrobić z poziomu aplikacji klienckiej):

Po uruchomieniu powyższego kodu otrzymamy informację, że 1 wiersz został dodany.

Tabela pracownicy wygląda więc tak:

ID Imie Nazwisko Data_urodzenia Stanowisko Data_zatrudnienia
1 Jan Kowalski 1984-12-23 Programista 1999-12-09
2 Adam Adamiak 1991-08-08 Menadżer 2011-01-31
3 Jakub Kowalik 1990-03-16 Programista 2010-01-04
4 Michał Jakubiak 1981-05-02 Projektant 1998-09-22
5 Jan Kowalski 1991-08-08 Programista 2001-11-11

Jak widać na końcu pojawił się nowy wiersz.

Oczywiście w procedurze składowanej możemy umieścić również zapytania typu SELECT oraz DELETE.

Ogólna struktura procedury składowanej w SQL

, , , , ,

  • ja

    „Procedury to pewnego rodzaju funkcje SQL”??? To co to są funkcje SQL? Masło maślane, merytorycznie przeciętnie (że niby brak konieczności przesłaniea skryptu SQL ma być znaczącą optymalizacją), błędy gramatyczne też się pojawiają…

    • Fakt w tym pierwszym zdaniu jest drobna nieścisłość merytoryczna, zaraz poprawię ;-) A co do optymalizacji to nigdzie nie napisałem, że brak konieczności przesyłania całego zapytania znacznie przyspiesza ogólne działanie aplikacji klienckiej. Na pewno na to ma wpływ brak konieczności przesyłania danych po kilka razy (zwłaszcza przy wolnym łączu internetowym) proszę czytać dokładniej ;) A co do błędów gramatycznych to niestety pomimo wielu moich starań i tak zawsze gdzieś się będą pojawiać, jak jakieś znajduję to poprawiam.