Samouczek PL / SQL: Wszystko, co musisz wiedzieć o PL / SQL



Samouczek PL / SQL obejmuje wszystkie szczegółowe wyjaśnienia wszystkich niezbędnych pojęć wymaganych do opanowania programowania PL / SQL z różnymi przykładami

PL / SQL to język proceduralny, który przezwycięża napotykane niedociągnięcia Strukturalny język zapytań . Jest to rozszerzenie SQL i możemy nawet bezproblemowo używać zapytań SQL w dowolnej aplikacji lub programie PL / SQL. W tym samouczku dotyczącym języka PL / SQL szczegółowo omówimy podstawowe pojęcia dotyczące języka PL / SQL. W tym artykule omówiono następujące tematy.

Co to jest PL / SQL?

Oznacza to rozszerzenie języka proceduralnego na ustrukturyzowany język zapytań . Firma Oracle stworzyła PL / SQL, która rozszerza niektóre ograniczenia SQL, aby zapewnić bardziej kompleksowe rozwiązanie do tworzenia aplikacji o znaczeniu krytycznym działających w wyroczni .





logo-pl / sql tutorial - edureka

funkcje

  • PL / SQL zapewnia funkcjonalność języka proceduralnego, taką jak podejmowanie decyzji, iteracja itp.

  • Za pomocą jednego polecenia PL / SQL może wykonać kilka zapytań.



  • Możemy również ponownie wykorzystać jednostki PL / SQL, takie jak funkcje, wyzwalacze, procedury itp., Które są przechowywane w bazie danych po utworzeniu.

  • PL / SQL ma również blok obsługi wyjątków, który obsługuje wyjątki w PL / SQL.

  • Rozbudowane sprawdzanie błędów jest również możliwe przy użyciu PL / SQL



  • Aplikacje napisane w PL / SQL można przenosić na inny sprzęt, a systemy operacyjne, pod warunkiem, że Oracle musi działać.

PL / SQL vs SQL

SQL PL / SQL
SQL to pojedyncze zapytanie używane do wykonywania operacji DDL i DMLPL / SQL to blok kodów używany do definiowania całego programu lub procedury / funkcji itp
Nie określa, jak należy coś zrobić, a raczej określa, co należy zrobićPL / SQL określa, jak należy to zrobić
Wykonuje pojedynczą instrukcjęWykonuje jednocześnie blok instrukcji.
SQL jest używany głównie do manipulowania danymiZ kolei PL / SQL służy do tworzenia aplikacji
Nie może zawierać kodu PL / SQLPonieważ jest to rozszerzenie SQL, może zawierać kod SQL

Struktury blokowe w PL / SQL

PL / SQL zazwyczaj organizuje kod w bloki. Blok kodu bez nazwy jest nazywany blokiem anonimowym. Jest znany jako anonimowy blok, ponieważ nie jest zapisywany w bazie danych Oracle. Przyjrzyjmy się anonimowemu blokowi w PL / SQL.

[DECLARE] instrukcje deklaracji [BEGIN] instrukcje wykonania [EXCEPTION] instrukcje wyjątków END /

Patrząc na powyższy diagram widzimy, że struktura blokowa jest podzielona na cztery części, tj. Deklaracja, początek, wyjątek i koniec. Spróbujmy zrozumieć, jak działa struktura bloków w PL / SQL. Spośród wszystkich tych sekcji sekcja wykonania jest obowiązkowa, a pozostałe są opcjonalne.

  • OGŁOSIĆ słowo kluczowe jest używane do sekcji deklaracji służy do deklarowania typów danych i struktur, takich jak zmienne, funkcje itp.

  • ZACZYNAĆ słowo kluczowe jest używane w sekcji wykonania. Jest obowiązkowy i zawiera wszystkie oświadczenia, które należy wykonać. W tym bloku zdefiniowana jest logika biznesowa, w tym bloku możemy używać zarówno instrukcji proceduralnych, jak i SQL.

  • Plik WYJĄTEK słowo kluczowe jest używane w sekcji wyjątków. Zawiera wszystkie instrukcje wyjątków.

  • KONIEC słowo kluczowe oznacza koniec bloku, a lewy ukośnik „/” informuje narzędzie, którego używasz (Oracle Database Tool) do wykonania bloku PL / SQL.

Oto prosty przykład pokazujący, jak możemy wykorzystać kod PL / SQL.

BEGIN NULL END /

Teraz, gdy wiemy, jak działa struktura bloków w PL / SQL, pozwól nam zrozumieć różne aspekty PL / SQL, takie jak deklarowanie, nazywanie i przypisywanie wartości do zmiennych.

Zmienne PL / SQL

Zmienna w PL / SQL to w zasadzie nazwa, która jest zmienna lub tymczasowe miejsce przechowywania, które obsługuje określony typ danych. Przyjrzyjmy się, jak możemy używać zmiennych w programie PL / SQL.

Reguły nazewnictwa zmiennych

PL / SQL przestrzega następujących zasad nazywania zmiennych.

  • Zmienna nie może mieć więcej niż 31 znaków

  • Nazwa zmiennej powinna zaczynać się od znaku ASCII. Ponieważ w PL / SQL rozróżniana jest wielkość liter, duża i mała litera będą różnymi zmiennymi.

  • Po pierwszym znaku musi znajdować się znak specjalny ($, _) lub dowolna liczba.

Konwencje nazewnictwa

Użyj następujących konwencji nazewnictwa wymienionych poniżej, aby użyć zmiennych.

Prefiks Typ danych
v_VARCHAR2
n_NUMER
t_STÓŁ
r_RZĄD
re_DATA
b_BOOLEAN

Deklaracja

Spróbujmy zrozumieć, jak deklaruje się zmienną w PL / SQL

Przykład frameworka testowego selenium webdriver

Deklaracja zawiera nazwę zmiennej, po której następuje typ danych i oddzielone średnikiem. Poniżej znajduje się przykład pokazujący, jak można zadeklarować zmienną w PL / SQL.

DECLARE v_name VARCHAR (25) n_age NUMBER (3) BEGIN NULL END

Możesz również dodać długość typu danych, tak jak zrobiliśmy w powyższym przykładzie.

Kotwice

Kotwica zasadniczo odnosi się do użycia słowa kluczowego% TYPE, które deklaruje zmienną o typie danych powiązanym z typem danych danej kolumny w tabeli.

Spójrz na przykład, aby to zrozumieć. Załóżmy, że mamy STÓŁ PRACOWNIKÓW, możemy użyć kotwic w następujący sposób.

DECLARE v_name PRACOWNIK.NAME% TYPE n_age EMPLOYEE.AGE% TYPE BEGIN NULL END /

Zadanie

Przypisanie zmiennej jest dość łatwe, możemy użyć operatora przypisania, aby przypisać wartości do zmiennej. Poniższy przykład pokazuje, jak możemy przypisać wartości do zmiennej.

DECLARE v_name VARCHAR (20) n_course VARCHAR (10) BEGIN v_name = 'edureka' v_course = 'sql' END /

Inicjalizacja

Możemy również zainicjować wartość zmiennej w sekcji deklaracji. Poniższy przykład pokazuje, jak możemy zainicjować wartości w zmiennej.

DECLARE v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' BEGIN NULL END /

Teraz, gdy już wiemy, jak możemy pracować ze zmiennymi, spróbujmy zrozumieć, jak będziemy używać funkcji w PL / SQL.

Funkcja w PL / SQL

Funkcja w PL / SQL to w zasadzie nazwany blok, który zwraca wartość. Znany jest również jako podprogram lub podprogram, poniższa składnia pokazuje, jak możemy używać funkcji w PL / SQL.

CREATE [OR REPLACE] FUNCTION nazwa_funkcji [(parametr_1 [IN] [OUT] data_type, parametr_2 [IN] [OUT] data_type, parametr_N [IN] [OUT] data_type] RETURN return_data_type IS BEGIN instrukcje return return_data_type EXCEPTION END /

Przede wszystkim musisz podać nazwę funkcji po słowie kluczowym. Nazwa funkcji musi zaczynać się od czasownika. Funkcja może nie mieć żadnego, jednego lub więcej parametrów, które określamy w parametrach. Musimy jawnie określić typ danych każdego parametru, a następnie przychodzi tryb, który może być dowolny z poniższych.

  • W - Parametr IN jest parametrem tylko do odczytu.

  • WYJŚCIE - Jest to parametr tylko do zapisu

    ansibl vs marionetka vs szef kuchni
  • WEJŚCIE - Parametr IN OUT jest zarówno parametrem do odczytu i zapisu.

Oto prosty przykład pokazujący, jak używamy funkcji w PL / SQL.

UTWÓRZ LUB ZAMIEŃ FUNKCJĘ try_parse (iv_number W VARCHAR2) RETURN NUMBER IS BEGIN RETURN to_number (iv_number) WYJĄTEK KIEDY inni THEN RETURN NULL END

Wywołanie funkcji

Spróbujmy wywołać funkcję, którą utworzyliśmy w anonimowym bloku w poniższym przykładzie.

USTAW WYJŚCIE SERWERA ROZMIAR 1000000 ZADEKLARUJ n_x numer n_y numer n_z numer BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_xP) DBMS_OUTLINE (n_xP) DBMS_OUTLINE (n_xP) n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /

Możemy również wywołać tę funkcję w instrukcji SELECT. Teraz, gdy wiemy, jak możemy używać funkcji w PL / SQL, spróbujmy zrozumieć, jak pracujemy z procedurami w PL / SQL.

Procedura PL / SQL

Procedura to w zasadzie blok, który wykonuje określone zadanie. Za pomocą procedury możemy opakować lub hermetyzować złożoną logikę biznesową i ponownie wykorzystać ją zarówno w warstwie aplikacji, jak i bazy danych.

Spójrzmy na prosty przykład, aby zrozumieć, jak ta procedura działa w PL / SQL

UTWÓRZ LUB ZAMIEŃ PROCEDURĘ adjust_salary (in_employee_id IN EMPLOYEES.EMPLOYEE_ID% TYPE, in_percent IN NUMBER) IS BEGIN - zaktualizuj wynagrodzenie pracownika AKTUALIZUJ pracowników SET pensja = pensja + wynagrodzenie * in_percent / 100 WHERE worker_id = in_employee_id END

W powyższym przykładzie mamy dwa parametry, procedura dostosowuje wynagrodzenie o zadany procent, a słowo kluczowe UPDATE aktualizuje wartość w informacjach o wynagrodzeniu.

Nagłówek procedury

Sekcja znajdująca się przed słowem kluczowym IS jest nazywana nagłówkiem procedury. Poniżej znajduje się kilka wskazówek, z którymi należy się zapoznać podczas pracy z procedurami.

  • schemat - Jest to opcjonalna nazwa schematu, do którego należy procedura.

  • Nazwa - Nazwa procedury, która powinna zaczynać się od czasownika.

  • parametry - Jest to opcjonalna lista parametrów.

  • AUTHID - Określa, czy procedura będzie wykonywana z uprawnieniami bieżącego użytkownika czy pierwotnego właściciela procedury.

Ciało procedury

Wszystko, co następuje po słowie kluczowym IS, nazywane jest treścią procedury. W treści procedury mamy deklarację, wyjątek i instrukcje wykonania. W przeciwieństwie do funkcji, słowo kluczowe RETURN w procedurze służy do zatrzymania wykonywania i zwrócenia kontroli wywołującemu.

Wywołanie procedury

Zobaczmy, jak możemy wywołać procedurę w PL / SQL.

EXEC nazwa_procedury (param1, param2 & hellipparamN)

Możemy wywołać procedury bez parametrów, używając tylko słowa kluczowego EXEC i nazwy procedury. Teraz, gdy wiemy, jak możemy pracować z procedurami, spróbujmy zrozumieć, w jaki sposób zagnieżdżone bloki są używane w PL / SQL.

Blok zagnieżdżony

Zagnieżdżony blok to nic innego jak połączenie jednego lub więcej bloków PL / SQL w celu uzyskania lepszej kontroli nad wykonywaniem i wyjątkowej obsługi programu.

Oto prosty przykład zagnieżdżonego bloku.

USTAW SERVEROUTPUT NA ROZMIAR 1000000 DECLARE n_emp_id PRACOWNICY.EMPLOYEE_ID% TYPE: = & emp_id1 BEGIN DECLARE n_emp_id workers.employee_id% TYPE: = & emp_id2 v_name workers.first_name% TYPE BEGIN_id1 BEGIN DECLARE n_emp_id workers.employee_id% TYPE: = & emp_id2 v_name workers.first_name% TYPE BEGIN_id1 BEGIN DECLARE n_emp_id workers. pracownika '|| n_emp_id ||' to '|| v_name) WYJĄTEK GDY no_data_found THEN DBMS_OUTPUT.PUT_LINE (' Employee '|| n_emp_id ||' not found ') END END /

Zewnętrzny blok PL / SQL w powyższym przykładzie jest znany jako blok nadrzędny lub blok otaczający, natomiast blok wewnętrzny jest znany jako blok potomny lub blok zamknięty.

Używanie zmiennych o tych samych nazwach w obu blokach nie jest dobrym pomysłem, ponieważ podczas wykonywania podrzędna zmienna blokowa przesłania zmienną bloku macierzystego. Dzieje się tak, ponieważ PL / SQL nadaje priorytet zmiennej wewnątrz własnego bloku.

Zablokuj etykietę

Możemy rozwiązać ten problem dzięki etykiecie bloku, która pomaga nam tworzyć odniesienia do zmiennych wewnątrz bloków za pomocą etykiety.

Oto prosty przykład pokazujący, jak możemy użyć etykiety blokowej.

 <>DEKLARUJ ... POCZĄTEK ... KONIEC

Używanie etykiety blokowej pomaga poprawić czytelność kodu, uzyskać lepszą kontrolę i tworzyć odniesienia do bloków. Teraz, gdy wiemy, jak możemy pracować z zagnieżdżonymi blokami, spróbujmy zrozumieć, jak działa instrukcja IF STATEMENT w PL / SQL.

Instrukcja IF

PL / SQL ma trzy ZESTAWIENIA IF

  • JEŚLI NASTĘPNIE - Jest to najprostsze IF STATEMENT jeśli warunek jest prawdziwy, instrukcje zostaną wykonane, jeśli warunek jest fałszywy, nic nie robi.

  • JEŚLI-TO JESZCZE - W tym przypadku klauzula ELSE jest dodawana dla alternatywnej sekwencji instrukcji.

  • JEŻELI-TO-ELSEIF - Pozwala nam wykonać sekwencję wielu warunków testowych.

Składnia IF-THEN

różnica między C # i C ++
JEŻELI warunek TO sequence_of_statements KONIEC JEŻELI

Składnia IF-THEN-ELSE

JEŻELI warunek WTEDY sekwencja_jedy_______________________________________________________________ tekstach_ ]_KON

Składnia IF-THEN-ELSEIF

JEŻELI warunek1 TO sekwencja_ instrukcji1 ELSIF warunek2 TO sekwencja_ instrukcji2 ELSE sekwencja_ instrukcji3 KONIEC JEŻELI

Teraz, gdy skończyliśmy z instrukcją IF STATEMENT, przyjrzyjmy się instrukcji CASE w PL / SQL.

Instrukcja CASE

Instrukcja CASE zasadniczo pomaga w wykonywaniu sekwencji instrukcji na podstawie selektora. W tym przypadku selektorem może być wszystko, może to być zmienna, funkcja lub proste wyrażenie. Oto prosty przykład pokazujący składnię instrukcji CASE w PL / SQL.

[<>] CASE [TRUE | selector] KIEDY wyrażenie1 TO sekwencja_ instrukcji1 KIEDY wyrażenie2 TO sekwencja_ instrukcji2 ... KIEDY wyrażenieN TO sekwencja_ instrukcjiN [ELSE sekwencja_ instrukcjiN + 1] KONIEC CASE [nazwa_ etykiety]

W powyższej składni po słowie kluczowym CASE znajduje się selektor. PL / SQL oceni selektor tylko raz, aby określić, która instrukcja musi zostać wykonana.

Po selektorze znajduje się słowo kluczowe WHEN. Jeśli wyrażenie spełnia kryteria selektora, wówczas wykonywana jest odpowiednia instrukcja po słowie kluczowym THEN.

Teraz, gdy wiemy, jak możemy użyć instrukcji CASE, spróbujmy zrozumieć, w jaki sposób będziemy używać instrukcji pętli w PL / SQL.

Instrukcja pętli

Instrukcja pętli w PL / SQL jest instrukcją iteracyjną, która umożliwia wielokrotne wykonywanie sekwencji instrukcji. Oto prosty przykład pokazujący składnię instrukcji pętli w PL / SQL.

LOOP sequence_of_statements END LOOP

Pomiędzy słowami kluczowymi LOOP i END LOOP musi znajdować się co najmniej jedna instrukcja wykonywalna.

Pętla z instrukcją EXIT

Instrukcje EXIT i EXIT when pozwalają na wyjście z pętli. Instrukcja EXIT WHEN warunkowo kończy pętlę, podczas gdy EXIT bezwarunkowo kończy wykonywanie.

LOOP ... EXIT WHEN warunek END LOOP

Etykieta pętli

Etykieta pętli służy do zakwalifikowania nazwy zmiennej licznika pętli, gdy jest używana w zagnieżdżonej pętli. Poniżej znajduje się składnia etykiety pętli.

 <>LOOP sequence_of_statements Etykieta END LOOP

Teraz, gdy wiemy, jak możemy używać instrukcji pętli, przyjrzyjmy się instrukcjom while, aby lepiej je zrozumieć.

Instrukcja While Loop

Możemy użyć instrukcji pętli WHILE, gdy liczba wykonań nie jest zdefiniowana przed rozpoczęciem wykonywania. Poniższa składnia jest używana dla instrukcji pętli WHILE w PL / SQL.

WHILE warunek LOOP sequence_of_statements END LOOP

Warunek w składni jest wartością logiczną lub wyrażeniem, którego wynikiem jest PRAWDA, FAŁSZ lub NULL. Jeśli warunek ma wartość TRUE, instrukcje zostaną wykonane, jeśli ma wartość FALSE, wykonanie zostanie zatrzymane i sterowanie przejdzie do następnej instrukcji wykonywalnej.

Teraz, gdy już wiemy, jak możemy użyć instrukcji pętli WHILE, przyjrzyjmy się instrukcji pętli FOR.

Instrukcja pętli For

Instrukcja pętli FOR w PL / SQL pozwala nam wykonać sekwencję instrukcji określoną liczbę razy. Poniżej znajduje się składnia użycia instrukcji pętli FOR w PL / SQL

FOR loop_counter IN [REVERSE] lower_bound .. high_bound LOOP sequence_of_statements END LOOP

PL / SQL automatycznie tworzy zmienną lokalną loop_counter z typem danych INTEGER dla pętli, dzięki czemu nie trzeba jej jawnie deklarować. Dolna granica ... wyższa granica to zakres, po którym pętla się iteruje. Ponadto między słowami kluczowymi LOOP i END LOOP musi znajdować się co najmniej jedna instrukcja wykonywalna.

Teraz, gdy wiemy, jak możemy używać instrukcji pętli w PL / SQL, przyjrzyjmy się wyjątkowej obsłudze w PL / SQL.

Wyjątkowa obsługa

W PL / SQL każdy błąd jest traktowany jako wyjątek. Wyjątek można traktować jako specjalny warunek, który może zmienić lub zmienić przepływ wykonywania. W PL / SQL istnieją dwa rodzaje wyjątków.

  • Wyjątek systemowy - Jest podnoszony przez środowisko wykonawcze PL / SQL, gdy wykryje błąd.

  • Wyjątek zdefiniowany przez programistę - Te wyjątki są definiowane przez programistę w określonej aplikacji.

Definiowanie wyjątku

Wyjątek w PL / SQL musi zostać zadeklarowany, zanim będzie można go zgłosić. Możemy zdefiniować wyjątek za pomocą słowa kluczowego EXCEPTION, tak jak to zrobiliśmy w poniższym przykładzie.

EXCEPTION_NAME EXCEPTION

Aby zgłosić wyjątek, używamy słowa kluczowego RAISE.

RAISE EXCEPTION_NAME

A więc to wszystko o PL / SQL, mam nadzieję, że ten artykuł pomógł ci w dodaniu wartości do twojej wiedzy. Aby uzyskać więcej informacji na temat SQL lub baz danych, możesz zapoznać się z naszą obszerną listą do czytania tutaj: .

Jeśli chcesz uzyskać ustrukturyzowane szkolenie dotyczące MySQL, sprawdź nasze który obejmuje szkolenie na żywo prowadzone przez instruktora i rzeczywiste doświadczenie projektowe. To szkolenie pomoże Ci dogłębnie zrozumieć MySQL i osiągnąć mistrzostwo w tym temacie.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy w „ Samouczek PL / SQL ”I skontaktuję się z Tobą.