PL / SQL je procesni jezik, ki premaga pomanjkljivosti, s katerimi se sooča Strukturirani povpraševalni jezik za delo s podatkovnimi bazami . Je razširitev SQL-a in poizvedbe SQL lahko brez težav uporabljamo v kateri koli aplikaciji ali programu PL / SQL. V tej vadnici PL / SQL bomo podrobno preučili osnovne koncepte PL / SQL. V tem članku so zajete naslednje teme.
- Kaj je PL / SQL?
- Blokovne strukture v PL / SQL
- Spremenljivke PL / SQL
- Funkcija v PL / SQL
- PL / SQL postopek
- Vgnezdeni blok
- Izjava IF
- Izjava o zadevi
- Izjava o zanki
- Izjemno ravnanje
Kaj je PL / SQL?
Označuje postopkovno jezikovno razširitev na Strukturirani povpraševalni jezik za delo s podatkovnimi bazami . Oracle je ustvaril PL / SQL, ki razširja nekatere omejitve SQL, da bi zagotovil celovitejšo rešitev za izdelavo kritičnih aplikacij, ki se izvajajo na oracle .
Lastnosti
PL / SQL zagotavlja funkcionalnost postopkovnega jezika, kot so odločanje, ponavljanje itd.
Z enim samim ukazom lahko PL / SQL izvede številne poizvedbe.
Prav tako lahko ponovno uporabimo enote PL / SQL, kot so funkcije, sprožilci, postopki itd., Ki so po ustvarjanju shranjene v zbirki podatkov.
PL / SQL ima tudi blok za obravnavo izjem, ki obravnava izjeme v PL / SQL.
Obsežno preverjanje napak je možno tudi s PL / SQL
Aplikacije, napisane v PL / SQL, so prenosljive na drugo strojno opremo in operacijske sisteme, pod pogojem, da mora oracle delovati.
PL / SQL vs SQL
SQL | PL / SQL |
SQL je ena poizvedba, ki se uporablja za izvajanje operacij DDL in DML | PL / SQL je blok kod, ki se uporablja za definiranje celotnega programa ali postopka / funkcije itd |
V resnici ne določa, kako je treba stvari narediti, temveč določa, kaj je treba storiti | PL / SQL določa, kako je treba stvari početi |
Izvede en stavek | Izvede blok stavkov hkrati. |
SQL se v glavnem uporablja za obdelavo podatkov | PL / SQL pa se uporablja za ustvarjanje aplikacij |
Ne sme vsebovati kode PL / SQL | Ker gre za razširitev SQL, lahko v njej vsebuje kodo SQL |
Blokovne strukture v PL / SQL
PL / SQL običajno organizira kodo v bloke. Blok kode brez imena je znan kot anonimni blok. Znan je kot anonimni blok, ker ni shranjen v zbirki podatkov oracle. Oglejmo si anonimni blok v PL / SQL.
kako uporabljati čakanje in obveščanje v
[DECLARE] izjave deklaracije [BEGIN] izvedbeni stavki [EXCEPTION] izjeme END /
Če pogledamo zgornji diagram, lahko vidimo, da je blokovna struktura razdeljena na štiri dele, tj. Izjavo, začetek, izjemo in konec. Poskusimo razumeti, kako deluje blokovna struktura v PL / SQL. Od vseh teh odsekov je odsek za izvedbo obvezen, ostali pa neobvezni.
IZJAVITE ključna beseda se uporablja za razdelek za deklaracijo, uporablja se za razglasitev podatkovnih vrst in struktur, kot so spremenljivke, funkcije itd.
ZAČETI ključna beseda se uporablja za odsek za izvajanje. Je obvezen in vsebuje vse izjave, ki jih je treba izvršiti. V tem bloku je definirana poslovna logika, v tem bloku lahko uporabimo tako postopkovne kot izjave SQL.
The IZJEMA ključna beseda se uporablja za razdelek o izjemah. Vsebuje vse izjeme.
KONEC ključna beseda označuje konec bloka in poševnica nazaj '/' pove orodju, ki ga uporabljate (Oracle Database Tool) za izvajanje bloka PL / SQL.
Tu je preprost primer, ki prikazuje, kako lahko uporabimo kodo PL / SQL.
ZAČNI NULL KONEC /
Zdaj, ko vemo, kako blokovna struktura deluje v PL / SQL, naj razumemo različne vidike PL / SQL, kot so deklariranje, poimenovanje in dodeljevanje vrednosti spremenljivkam.
Spremenljivke PL / SQL
Spremenljivka v PL / SQL je v bistvu ime, ki se spreminja, ali začasno mesto shranjevanja, ki podpira določen podatkovni tip. Oglejmo si, kako lahko spremenljivke uporabljamo v programu PL / SQL.
Pravila spremenljivega poimenovanja
PL / SQL upošteva naslednja pravila za poimenovanje spremenljivk.
Spremenljivka ne sme imeti več kot 31 znakov
Ime spremenljivke se mora začeti z znakom ASCII. Ker PL / SQL razlikuje med velikimi in malimi črkami, bosta veliki in mali črki različni spremenljivki.
Za prvim znakom mora biti poseben znak ($, _) ali poljubna številka.
Konvencije o poimenovanju
Za uporabo spremenljivk uporabite naslednje spodaj navedene konvencije o poimenovanju.
Predpona | Vrsta podatkov |
v_ | VARCHAR2 |
n_ | ŠTEVILO |
t_ | TABELA |
r_ | VRSTICA |
d_ | DATUM |
b_ | BOOLEAN |
Izjava
Poskusimo razumeti, kako se deklaracija spremenljivk izvaja v PL / SQL
Izjava vključuje ime spremenljivke, ki ji sledi vrsta podatkov in ločena s podpičjem. Sledi primer, ki prikazuje, kako lahko spremenljivko prijavite v PL / SQL.
IZJAVITE v_ime VARCHAR (25) n_age ŠTEVILKA (3) ZAČETI NULL KONEC
Dodate lahko tudi dolžino podatkovnega tipa, kot smo storili v zgornjem primeru.
Sidra
Sidro se v bistvu nanaša na uporabo ključne besede% TYPE, ki razglasi spremenljivko s podatkovnim tipom, povezanim s podatkovnim tipom stolpca določenega stolpca v tabeli.
Oglejte si primer, da to razumete. Recimo, da imamo tabelo ZAPOSLENI, lahko sidra uporabimo na naslednji način.
IZJAVITE v_ime EMPLOYEE.NAME% TYPE n_age EMPLOYEE.AGE% TYPE BEGIN NULL END /
Dodelitev
Dodelitev spremenljivk je precej enostavna, lahko uporabimo operator dodelitve za dodelitev vrednosti spremenljivki. Naslednji primer prikazuje, kako lahko spremenljivki dodelimo vrednosti.
IZJAVITE v_name VARCHAR (20) n_course VARCHAR (10) BEGIN v_name = 'edureka' v_course = 'sql' END /
Inicializacija
Vrednost spremenljivke lahko inicializiramo tudi v razdelku deklaracije. Naslednji primer prikazuje, kako lahko vrednosti spremenimo v spremenljivko.
IZJAVITI v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' BEGIN NULL END /
Zdaj, ko vemo, kako lahko delamo s spremenljivkami, poskusimo razumeti, kako bomo uporabljali funkcije v PL / SQL.
Funkcija v PL / SQL
Funkcija v PL / SQL je v bistvu imenovani blok, ki vrne vrednost. Znana je tudi kot podprogram ali podprogram, naslednja sintaksa prikazuje, kako lahko uporabljamo funkcije v PL / SQL.
USTVARI [ALI ZAMENJAJ] FUNCTION ime_funkcije [(parameter_1 [IN] [OUT] vrsta_podatka, parameter_2 [IN] [OUT] vrsta_podatka, parameter_N [IN] [OUT] vrsta_podatka] RETURN return_data_type JE BEGIN stavki return return_data_type EXCEPTION END /
Najprej morate za ključno besedo določiti ime funkcije. Ime funkcije se mora začeti z glagolom. Funkcija ne sme imeti nobenega, enega ali več parametrov, ki jih določimo v parametrih. Podatkovni tip vsakega parametra moramo izrecno navesti, nato pa pride do načina, ki lahko kar koli od naslednjega.
IN - Parameter IN je parameter samo za branje.
OUT - To je parameter samo za pisanje
IN OUT - Parameter IN OUT je oba parametra branja in pisanja.
Tu je preprost primer, ki prikazuje, kako uporabljamo funkcije v PL / SQL.
USTVARI ALI NADOMESTI FUNKCIJO try_parse (iv_number IN VARCHAR2) VRNILNA ŠTEVILKA SE ZAČNI RETURN to_number (iv_number) RAZEN, KO DRUGI NATO VRAČAJO NULL END
Klicanje funkcije
Poskusimo poklicati funkcijo, ki smo jo naredili v anonimnem bloku v naslednjem primeru.
NASTAVITE SERVEROPUT NA VELIKOSTI 1000000 DECLARE n_x številka n_y številka n_z številka ZAČNITE n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_x) DBUT (N_X) n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /
Funkcijo lahko pokličemo tudi v stavku SELECT. Zdaj, ko vemo, kako lahko uporabljamo funkcije v PL / SQL, poskusimo razumeti, kako delamo s postopki v PL / SQL.
PL / SQL postopek
Postopek je v bistvu blok, ki opravi določeno nalogo. S pomočjo postopka lahko zavijemo ali vključimo zapleteno poslovno logiko in jo ponovno uporabimo tako v aplikacijski kot v podatkovni plasti.
Oglejmo si preprost primer, da bomo razumeli, kako postopek deluje v PL / SQL
USTVARI ALI NADOMESTI POSTOPEK prilagodi_plačo (in_employee_id V ZAPOSLENIH.EMPLOYEE_ID% TIP, v_ odstotkih NA ŠTEVILO) JE ZAČETEK - posodobi plačo zaposlenega UPDATE zaposleni SET plača = plača + plača * in_percent / 100 WHERE worker_id = in_employee_id END
V zgornjem primeru imamo dva parametra, postopek prilagodi plačo za določen odstotek in ključna beseda UPDATE posodobi vrednost v podatkih o plači.
Glava postopka
Odsek pred ključno besedo IS se imenuje glava postopka. Sledi nekaj napotkov, ki jih je treba poznati pri delu s postopki.
shema - Postopek pripada neobveznemu imenu sheme.
ime - Ime postopka, ki se začne z glagolom.
parametri - To je neobvezen seznam parametrov.
AUTHID - Določa, ali se bo postopek izvedel s privilegijem trenutnega uporabnika ali prvotnega lastnika postopka.
Telo postopka
Vse, kar pride za ključno besedo IS, se imenuje telo postopka. Izjave o izjavi, izjemi in izvedbi imamo v telesu postopka. Za razliko od funkcije se ključna beseda RETURN v postopku uporablja za zaustavitev izvajanja in vrnitev nadzora klicatelju.
Klicanje postopka
Poglejmo, kako lahko pokličemo postopek v PL / SQL.
EXEC_ime_procedura (param1, param2 & hellipparamN)
Postopke brez parametrov lahko pokličemo samo z uporabo ključne besede EXEC in imena postopka. Zdaj, ko vemo, kako lahko delamo s postopki, poskusimo razumeti, kako se ugnezdeni bloki uporabljajo v PL / SQL.
Vgnezdeni blok
Vgnezden blok ni nič drugega kot kombinacija enega ali več blokov PL / SQL za boljši nadzor nad izvajanjem in izjemnim ravnanjem s programom.
Tu je preprost primer ugnezdenega bloka.
NASTAVITE SERVEROUTP NA VELIKOSTI 1000000 DECLARE n_emp_id EMPLOYEES.EMPLOYEE_ID% TYPE: = & emp_id1 ZAČNITE IZJAVITI n_emp_id staff.employee_id% TYPE: = & emp_id2 v_name zaposleni.first_name% TYPE_NAPREZNO IME BREZ IMENA zaposlenega '|| n_emp_id ||' je '|| v_name) EXCEPTION WHEN no_data_found THEN DBMS_OUTPUT.PUT_LINE (' Employee '|| n_emp_id ||' not found ') END END /
Zunanji blok PL / SQL v zgornjem primeru je znan kot nadrejeni blok ali zapiralni blok, notranji blok pa je znan kot podrejeni blok ali priloženi blok.
Ni dobra ideja, če bi v obeh blokih uporabljali spremenljivke z enakimi imeni, ker bo med izvajanjem spremenljivka podrejenega bloka preglasila nadrejeno spremenljivko bloka. To se zgodi, ker PL / SQL daje prednostni nalogi spremenljivki v svojem bloku.
Oznaka bloka
To težavo lahko odpravimo z oznako bloka, ki nam pomaga pri sklicevanju na spremenljivke znotraj blokov z uporabo oznake.
Tu je preprost primer, ki prikazuje, kako lahko uporabimo oznako bloka.
<>IZJAVITE ... ZAČNITE ... KONEC
Uporaba oznake bloka pomaga izboljšati berljivost kode, pridobiti boljši nadzor in se sklicevati na bloke. Zdaj, ko vemo, kako lahko delamo z ugnezdenimi bloki, poskusimo razumeti, kako IF STATEMENT deluje v PL / SQL.
Izjava IF
PL / SQL ima tri IZJAVE
ČE, POTEM - To je najpreprostejši IF STATEMENT, če je pogoj true, se bodo stavki izvedli, če je pogoj false, ne naredi ničesar.
ansible vs chef vs puppet
ČE TADA-DRUGJE - V tem je dodana klavzula ELSE za nadomestno zaporedje stavkov.
ČE-TADA-ELSEIF - Omogoča nam izvajanje več preskusnih pogojev v zaporedju.
ČE-TADA Sintaksa
IF pogoj THEN zaporedje_izjav END END IF
IF-THEN-ELSE Sintaksa
IF pogoj THEN zaporedje_f__izjav DRUGA zaporedje_drugih_izjav END END
Sintaksa IF-THEN-ELSEIF
IF pogoj1 THEN zaporedje_izjav1 pogoj ELSIF2 THEN zaporedje_izjav2 ELSE zaporedje_izjav3 END IF
Zdaj, ko smo končali s IF STATEMENT, si oglejmo stavek CASE v PL / SQL.
Izjava o zadevi
Stavek CASE v bistvu pomaga pri izvajanju zaporedja stavkov, ki temelji na izbirniku. Izbirnik je v tem primeru lahko karkoli, lahko spremenljivka, funkcija ali preprost izraz. Tu je preprost primer za prikaz sintakse stavka CASE v PL / SQL.
[<>] ZADEVA [TRUE | izbirnik] WHEN izraz1 TED zaporedja_izjav1 WHEN izraz2 TADA zaporedje_izjav2 ... KDAJ izrazN TAD zaporedje_izjavN [ELSE zaporedje_izjavN + 1] END CASE [ime_nalepke]
V zgornji sintaksi za ključno besedo CASE pride izbirnik. PL / SQL bo izbirnik ocenil samo enkrat, da bo določil, kateri stavek je treba izvesti.
Izbirniku sledi ključna beseda WHEN. Če izraz izpolnjuje izbirnik, se izvede ustrezen stavek po ključni besedi THEN.
Zdaj, ko vemo, kako lahko uporabimo stavek CASE, poskusimo razumeti, kako bomo uporabili stavke zanke v PL / SQL.
Izjava o zanki
Stavek zanke v PL / SQL je iterativni stavek, ki vam omogoča večkratno izvajanje zaporedja stavkov. Tu je preprost primer za prikaz sintakse stavka zanke v PL / SQL.
LOOP zaporedje_izkazov END LOOP
Med ključno besedo LOOP in END LOOP mora biti vsaj en izvršljiv stavek.
Zanka z izjavo EXIT
Stavka EXIT in EXIT, ko omogočata izhod iz zanke. Stavek EXIT WHEN pogojno prekine zanko, EXIT pa brezpogojno zaključi izvajanje.
LOOP ... EXIT WHEN, ko stanje END LOOP
Oznaka zanke
Oznaka zanke se uporablja za določitev imena spremenljivke števca zanke, kadar se uporablja v ugnezdeni zanki. Sledi sintaksa oznake zanke.
<>Oznaka LOOP sequence_of_statements END LOOP
Zdaj, ko vemo, kako lahko uporabimo stavke zanke, si oglejmo izjave zanke za boljše razumevanje.
Izjava o zanki
Stavek zanke WHILE lahko uporabimo, kadar število izvršitev ni določeno, dokler se izvajanje ne začne. Naslednja sintaksa se uporablja za stavek zanke WHILE v PL / SQL.
WHILE pogoj LOOP sequence_of_statements END LOOP
Pogoj v sintaksi je logična vrednost ali izraz, ki je TRUE, FALSE ali NULL. Če je pogoj TRUE, se stavki izvršijo, če je FALSE, se izvajanje ustavi in nadzor preide na naslednji izvršljivi stavek.
Zdaj, ko vemo, kako lahko uporabimo stavek zanke WHILE, si oglejmo stavek zanke FOR.
Za izjavo zanke
Stavek zanke FOR v PL / SQL nam omogoča, da določeno številokrat izvedemo zaporedje stavkov. Sledi sintaksa za uporabo stavka zanke FOR v PL / SQL
FOR loop_counter IN [REVERSE] lower_bound .. lower_bound LOOP sequence_of_statements END LOOP
PL / SQL samodejno ustvari lokalno spremenljivko loop_counter s podatkovnim tipom INTEGER za zanko, tako da vam je ni treba izrecno prijaviti. Lowerbound..higherbound je obseg, v katerem se zanka ponavlja. Prav tako morate imeti vsaj en izvršljiv stavek med ključnimi besedama LOOP in END LOOP.
Zdaj, ko vemo, kako lahko uporabimo stavke zanke v PL / SQL, si oglejmo izjemno ravnanje v PL / SQL.
Izjemno ravnanje
V PL / SQL se kakršna koli napaka obravnava kot izjema. Izjemo lahko obravnavamo kot poseben pogoj, ki lahko spremeni ali spremeni tok izvajanja. V PL / SQL obstajata dve vrsti izjem.
Izjema sistema - Poviša ga čas izvajanja PL / SQL, ko zazna napako.
Izjema, ki jo določi programer - Te izjeme definira programer v določeni aplikaciji.
Določitev izjeme
Preden jo lahko uveljavite, je treba prijaviti izjemo v PL / SQL. Izjemo lahko določimo s pomočjo ključne besede EXCEPTION, kot smo to storili v spodnjem primeru.
EXCEPTION_NAME EXCEPTION
Za izjemo uporabimo ključno besedo RAISE.
RAISE EXCEPTION_NAME
Torej, to je bilo vse o PL / SQL, upam, da vam je ta članek pomagal dodati vrednost vašemu znanju. Za več informacij o SQL ali zbirkah podatkov si lahko ogledate naš celovit bralni seznam tukaj: .
Če želite dobiti strukturirano usposabljanje za MySQL, si oglejte naš ki prihaja z usposabljanjem pod vodstvom inštruktorjev v živo in izkušnjami iz resničnih projektov. Ta trening vam bo pomagal poglobljeno razumeti MySQL in vam pomagal doseči obvladovanje zadeve.
Imate vprašanje za nas? Prosimo, navedite to v oddelku za komentarje v Vadnica PL / SQL ”In se vam oglasim.