Procedury to podprogramy, które można tworzyć i zapisywać w bazie danych jako obiekty bazy danych. Tak jak w innych językach, możesz tworzyć i usuwać procedury również w SQL. W tym artykule przyjrzyjmy się procedurom w SQL ze składnią i przykładami.
Tematy omawiane w artykule to:
- Co to jest procedura w SQL?
- Składnia procedury SQL
- Przykładowa procedura w SQL
- Zalety procedur SQL
Co to jest procedura w SQL?
Procedura w języku SQL (często nazywana procedurą składowaną) to jednostka wielokrotnego użytku, która hermetyzuje określoną logikę biznesową aplikacji. Procedura SQL to grupa instrukcji SQL i logiki, skompilowanych i przechowywanych razem w celu wykonania określonego zadania.
Poniżej wymieniono kluczowe cechy procedur SQL:
- Łatwe do wdrożenia, ponieważ używają bardzo prostego, wysokopoziomowego języka o dużej sile pisania
- Obsługuje trzy typy parametrów, a mianowicie parametry wejściowe, wyjściowe i wejściowe-wyjściowe.
- Bardziej niezawodne niż równoważne procedury zewnętrzne.
- Procedury SQL promują możliwość ponownego użycia i konserwacji.
- Obsługuje prosty, ale potężny model obsługi warunków i błędów.
- Zwróć wartość statusu do procedury wywołującej lub partii, aby wskazać sukces lub niepowodzenie oraz przyczynę niepowodzenia.
Teraz, gdy wiesz, czym są procedury i dlaczego są potrzebne, omówmy składnię i przykład procedury w SQL.
Składnia procedur w SQL
Poniżej przedstawiono podstawową składnię tworzenia procedury w SQL:
CREATE [ OR REPLACE] PROCEDURE procedure_name [ (parameter_name [IN | OUT | IN OUT] type [ ])] {IS | AS } BEGIN [declaration_section] executable_section //SQL statement used in the stored procedure END GO
Terminologie składni
Parametr
Parametr to zmienna, która przechowuje wartość dowolnego prawidłowego typu danych SQL, za pomocą którego podprogram może wymieniać wartości z kodem głównym. Innymi słowy, parametry służą do przekazywania wartości do procedury. Istnieją 3 różne typy parametrów, które są następujące:
- IN :Jest to parametr domyślny, który zawsze otrzymuje wartości z programu wywołującego. Jest to zmienna tylko do odczytu wewnątrz podprogramów i jej wartości nie można zmienić wewnątrz podprogramu.
- WYJŚCIE: Służy do pobierania danych wyjściowych z podprogramów.
- W OUT: Ten parametr jest używany zarówno do podawania danych wejściowych, jak i uzyskiwania danych wyjściowych z podprogramów.
Inne terminologie
- nazwa-procedury określa nazwę procedury. Powinien być wyjątkowy.
- Opcja [OR REPLACE] pozwala na modyfikację istniejącej procedury.
- Jest | JAK Klauzula ustawiają kontekst do wykonania procedury składowanej. Różnica polega na tym, że słowo kluczowe „IS” jest używane, gdy procedura jest zagnieżdżona w niektórych innych blokach, a jeśli procedura jest samodzielna, używane jest „AS”.
- Code_Block deklaruje instrukcje proceduralne, które obsługują całe przetwarzanie w ramach procedury składowanej. Zawartość code_block zależy od zasad i języka proceduralnego używanego przez bazę danych.
Procedura w SQL:Przykłady
Przykład 1
Poniższy przykład tworzy prostą procedurę, która po wykonaniu wyświetla komunikat powitalny na ekranie. Następnie procedura będzie wyglądać następująco:
CREATE OR REPLACE PROCEDURE welcome_msg (para1_name IN VARCHAR2) IS BEGIN dbms_output.put_line (‘Hello World! '|| para1_name); END; /
Wykonaj procedurę składowaną. Samodzielną procedurę można wywołać na dwa sposoby −
- Korzystanie z WYKONAJ słowo kluczowe
- Wywołanie nazwy procedury z bloku SQL
Powyższa procedura może być wywołana przy użyciu słowa kluczowego Execute w następujący sposób:
EXEC welcome_msg (‘Welcome to Edureka!’);
Wyjście
Hello World! Welcome to Edureka
Procedura jest wykonywana, a wiadomość jest drukowana jako „Hello World! Witamy w Edurece”.
Przykład 2
Załóżmy, że masz tabelę z danymi pracownika, takimi jak identyfikator pracownika, imię, nazwisko i szczegóły działu.
Ten przykład tworzy procedurę SQL, która zwróci imię i nazwisko pracownika, gdy identyfikator pracownika jest podawany jako parametr wejściowy procedury składowanej. Następnie procedura będzie wyglądać następująco:
Create PROCEDURE GetStudentName ( @employeeID INT, --Input parameter , employeID of the employee @employeName VARCHAR(50) OUT --Output parameter, employeeName of employee AS BEGIN SELECT @employeName= Firstname+' '+Lastname FROM Employee_Table WHERE EmployeId=@employeID END
Kroki do wykonania:
- Zadeklaruj @employeName jako nvarchar(50)
- EXEC GetStudentName 01, @employeName dane wyjściowe
- wybierz @employeName
Powyższa procedura podawania identyfikatora pracownika jako danych wejściowych zwraca nazwisko tego konkretnego pracownika. Załóżmy, że jeśli mamy parametr wyjściowy, to najpierw musimy zadeklarować zmienną, aby zebrać wartości wyjściowe. Sprawdźmy teraz zalety procedury w SQL.
Zalety procedur w SQL
Głównym celem procedur składowanych w SQL jest ukrycie bezpośrednich zapytań SQL w kodzie i poprawa wydajności operacji bazy danych, takich jak wybieranie, aktualizowanie i usuwanie danych. Inne zalety procedury w SQL to:
- Zmniejsza ilość informacji wysyłanych do serwera bazy danych. Może stać się ważniejszą korzyścią, gdy przepustowość sieci jest mniejsza.
- Umożliwia ponowne użycie kodu
- Zwiększa bezpieczeństwo, ponieważ możesz udzielić użytkownikowi uprawnień do wykonania procedury przechowywanej zamiast udzielania uprawnień do tabel używanych w procedurze przechowywanej.
- Obsługuje zagnieżdżone wywołania procedur z innymi procedurami SQL lub procedurami zaimplementowanymi w innych językach.
Reasumując, procedury w SQL (procedury składowane) nie tylko zwiększają możliwości ponownego wykorzystania kodu, ale także zwiększają wydajność bazy danych. Jak? Zmniejszając ruch w sieci, zmniejszając ilość informacji przesyłanych przez sieć. Dzięki temu dotarliśmy do końca tego artykułu.
Jeśli chcesz dowiedzieć się więcej o MySQL i poznać tę relacyjną bazę danych typu open source, zapoznaj się z naszym Szkoleniem certyfikacyjnym MySQL DBA który jest dostarczany z prowadzonym przez instruktora szkoleniem na żywo i doświadczeniem w rzeczywistych projektach. To szkolenie pomoże ci dogłębnie zrozumieć MySQL i pomoże ci osiągnąć mistrzostwo w tym temacie.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego „Procedury w SQL; artykuł, a my skontaktujemy się z Tobą.