PL / SQL-i õpetus: kõik, mida peate teadma PL / SQL-i kohta

PL / SQL-i õpetus sisaldab kõiki näiteid kõigi PL / SQL-i programmeerimiseks vajalike mõistete üksikasjalikku selgitust

PL / SQL on protseduurikeel, mis kõrvaldab puudused, millega silmitsi seisavad Struktureeritud päringukeel . See on SQL-i laiendus ja me võime isegi SQL-i päringuid kasutada ilma probleemideta üheski PL / SQL-i rakenduses või programmis. Selles PL / SQL-i õpetuses tutvume üksikasjalikult PL / SQL-i põhimõistetega. Selles artiklis käsitletakse järgmisi teemasid.

Mis on PL / SQL?

See tähistab menetluskeele laiendust programmile struktureeritud päringukeel . Oracle lõi PL / SQL-i, mis laiendab SQL-i mõningaid piiranguid, et pakkuda igakülgsemat lahendust oracle'is töötavate missioonikriitiliste rakenduste loomiseks .





logo-pl / sql õpetus - edureka

Funktsioonid

  • PL / SQL pakub protseduurikeele funktsionaalsust, näiteks otsuste tegemine, iteratsioon jne.

  • Ühe käsu abil saab PL / SQL käivitada hulga päringuid.



  • Samuti võime taaskasutada PL / SQL-i üksusi, näiteks funktsioone, päästikuid, protseduure jms, mis on pärast loomist andmebaasi salvestatud.

  • PL / SQL-il on ka erandite käitlemise plokk, mis tegeleb PL / SQL-i eranditega.

  • PL / SQL abil on võimalik ka ulatuslik vigade kontroll



  • PL / SQL-is kirjutatud rakendused on kaasaskantavad teistesse riist- ja opsüsteemidesse, tingimusel et oracle peab olema töökorras.

PL / SQL vs SQL

SQL PL / SQL
SQL on üks päring, mida kasutatakse DDL- ja DML-toimingute tegemiseksPL / SQL on koodiplokk, mida kasutatakse kogu programmi või protseduuri / funktsiooni jne määratlemiseks
See ei määratle tegelikult, kuidas asju tuleb teha, vaid pigem määratletakse, mida tuleb tehaPL / SQL määratleb, kuidas asju tuleb teha
See täidab ühe avalduseSee täidab lausete ploki korraga.
SQL-i kasutatakse peamiselt andmetega manipuleerimiseksPL / SQL-i kasutatakse seevastu rakenduste loomiseks
See ei tohi sisaldada PL / SQL-koodiKuna see on SQL-i laiendus, võib see selles sisaldada SQL-koodi

Blokeeri struktuurid PL / SQL-is

PL / SQL korraldab koodi tavaliselt plokkideks. Koodiplokk nimeta on tuntud kui anonüümne plokk. Seda tuntakse kui anonüümset plokki, kuna seda ei salvestata Oracle'i andmebaasi. Vaatame anonüümset plokki PL / SQL-is.

[DECLARE] deklaratsiooniväljundid [BEGIN] täitmislaused [EXCEPTION] erandlaused END /

Vaadates ülaltoodud skeemi, näeme, et plokkstruktuur on jagatud neljaks osaks, st deklaratsioon, algus, erand ja lõpp. Püüdkem mõista, kuidas plokkstruktuur töötab PL / SQL-is. Kõigist nendest jaotistest on täitmisosa kohustuslik ja ülejäänud on valikulised.

  • KUULUTAMA Deklaratsiooni jaoks kasutatakse märksõna, mida kasutatakse andmetüüpide ja struktuuride, näiteks muutujate, funktsioonide jne deklareerimiseks.

  • Alusta märksõna kasutatakse täitmisjaotises. See on kohustuslik ja sisaldab kõiki käske, mis tuleb täita. Selles plokis on määratletud äriloogika, selles plokis saame kasutada nii protseduurilisi kui ka SQL-i lauseid.

  • The ERAND märksõna kasutatakse erandite jaotises. See sisaldab kõiki erandilauseid.

  • LÕPP märksõna tähistab ploki lõppu ja tahapoole kaldkriips ‘/’ ütleb tööriistale, mida kasutate (Oracle Database Tool) PL / SQL-ploki käivitamiseks.

Siin on lihtne näide PL / SQL-koodi kasutamise kohta.

HAKKAKE NULL LÕPP /

Nüüd, kui teame, kuidas plokkstruktuur PL / SQL-is töötab, mõistkem PL / SQL-i erinevaid aspekte, näiteks muutujate väärtuste deklareerimine, nimetamine ja määramine.

PL / SQL muutujad

PL / SQL-i muutuja on põhimõtteliselt muutuv nimi või ajutine salvestuskoht, mis toetab teatud andmetüüpi. Heitkem pilk sellele, kuidas saame muutujaid kasutada PL / SQL-programmis.

Muutuja nimetamise reeglid

Muutujate nimetamisel järgib PL / SQL järgmisi reegleid.

  • Muutuja ei tohi olla pikem kui 31 tähemärki

  • Muutuja nimi peaks algama tähemärgiga ASCII. Kuna PL / SQL on tõstutundlik, on suurtähed ja väiketähed erinevad muutujad.

  • Pärast esimest märki peab olema erimärk ($, _) või mis tahes number.

Konventsioonide nimetamine

Muutujate kasutamiseks kasutage järgmisi allpool loetletud nimetamisviise.

Eesliide Andmetüüp
v_VARCHAR2
n_NUMBER
t_TABEL
r_RIDA
d_KUUPÄEV
b_BOOLI

Deklaratsioon

Proovime mõista, kuidas muutujadeklaratsiooni tehakse PL / SQL-is

Deklaratsioon sisaldab muutuja nime, millele järgneb andmetüüp ja eraldatakse semikooloniga. Järgmine näide näitab, kuidas saate muutuja deklareerida PL / SQL-is.

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

Samuti saate lisada andmetüübi pikkuse, nagu oleme teinud ülaltoodud näites.

Ankrud

Ankur viitab põhimõtteliselt märksõna% TYPE kasutamisele, mille abil deklareeritakse tabeli konkreetse veeru veeru andmetüübiga seotud andmetüübiga muutuja.

Selle mõistmiseks vaadake mõnda näidet. Oletame, et meil on tabel TÖÖTAJAD, saame ankruid kasutada järgmiselt.

DECLARE v_name TÖÖTAJA. NIMI% TYPE n_age TÖÖTAJA.AGE% TÜÜP ALGADA NULL END /

Ülesanne

Muutuja määramine on üsna lihtne, saame muutujale väärtuste määramiseks kasutada määranguoperaatorit. Järgmine näide näitab, kuidas saame muutujale väärtusi omistada.

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

Initsialiseerimine

Muutuja väärtuse saame lähtestada ka deklaratsiooni jaotises. Järgmine näide näitab, kuidas saame väärtused muutujaks lähtestada.

DEKLAREERI v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' ALGADA NULL END /

Nüüd, kui teame, kuidas saame muutujatega töötada, proovigem mõista, kuidas me funktsioone PL / SQL-is kasutame.

Funktsioon PL / SQL-is

Funktsioon PL / SQLis on põhimõtteliselt nimega plokk, mis tagastab väärtuse. Seda tuntakse ka alamprogrammi või alamprogrammina, järgmine süntaks näitab, kuidas saame funktsioone kasutada PL / SQL-is.

LOE [VÕI ASENDA] FUNKTSIOON funktsiooni_nimi [(parameeter_1 [IN] [OUT] andmetüüp, parameeter_2 [IN] [OUT] andmete_tüüp, parameeter_N [IN] [OUT] andmete_tüüp] RETURN return_data_type IS BEGIN laused return return_data_type EXCEPTION END /

Kõigepealt peate märksõna järele määrama funktsiooni nime. Funktsiooni nimi peab algama verbiga. Funktsioonil võib olla ükski, üks või mitu parameetrit, mille me parameetrites määrame. Me peame iga parameetri andmetüübi selgesõnaliselt määrama ja seejärel tuleb režiim, mis võimaldab ühte järgmistest.

  • IN - Parameeter IN on kirjutuskaitstud parameeter.

  • VÄLJAS - See on kirjutusparameeter

  • SEES VÄLJAS - Parameeter IN OUT on mõlemad kirjutamis- ja kirjutamisparameetrid.

Siin on lihtne näide selle kohta, kuidas me funktsioone PL / SQL-is kasutame.

FUNKTSIOONI LOOMINE VÕI ASENDA try_parse (iv_number VARCHAR2-s) TAGASI NUMBER ALGAB TAGASI TAGASI_numbriks (iv_number) VÄLJA, KUI teised SIIS TAGASI NULL LÕPP

Funktsioonile helistamine

sql andmetüüp kuupäevaks

Proovime kutsuda järgmises näites anonüümses plokis tehtud funktsiooni.

MÄÄRA SERVEROVÄLJU SUURUSEL 1000000 DEKLAREERIGE n_x number n_y number n_z number BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_x) DB1 n_y) DBMS_OUTPUT.PUT_LINE (n_z) LÕPP /

Saame funktsiooni kutsuda ka SELECT-lauses. Nüüd, kui teame, kuidas saame funktsioone kasutada PL / SQL-is, proovigem mõista, kuidas me töötame PL / SQL-i protseduuridega.

PL / SQL protseduur

Protseduur on põhimõtteliselt plokk, mis teeb konkreetse ülesande. Protseduuri abil saame keeruka äriloogika mähkida või kapseldada ja taaskasutada nii rakenduse kui ka andmebaasi kihis.

Vaatame lihtsat näidet, et mõista protseduuri toimimist PL / SQL-is

LOE VÕI ASENDA MENETLUS Korrigeeri_palka (töötajates_töötajates.EMPLOYEE_ID% TÜÜP, in_protsent NUMBRIS) ALGAB - ajakohastage töötaja palka UUENDAGE töötajaid MÄÄRAGE palk = palk + palk * sissemakse / 100 KUS töötaja_id = sisse_töötaja_ ID LÕPP

Ülaltoodud näites on meil kaks parameetrit, protseduur korrigeerib palka antud protsendi võrra ja UPDATE märksõna värskendab palgateabe väärtust.

Protseduuri päis

Märksõna IS-le eelnevat jaotist nimetatakse protseduuri päiseks. Järgnevalt on toodud mõned näpunäited, mida peate protseduuridega töötamisel tundma.

  • skeem - See on skeemi valikuline nimi, kuhu protseduur kuulub.

  • nimi - Protseduuri nimi, mis peaks algama verbiga.

  • parameetrid - See on valikuline parameetrite loend.

  • AUTHID - See määrab, kas protseduur viiakse läbi praeguse kasutaja või protseduuri algse omaniku privileegiga.

Protseduuri keha

Kõike, mis tuleb pärast märksõna IS, nimetatakse protseduuri kehaks. Menetlusorganis on deklaratsiooni, erandi ja täitmise avaldused. Erinevalt funktsioonist kasutatakse protseduuri märksõna RETURN täitmise peatamiseks ja juhtelemendi helistajale tagastamiseks.

Menetluse kutsumine

Vaatame, kuidas saame protseduuri kutsuda PL / SQL-is.

EXEC protseduuri_nimi (param1, param2 ja hellipparamN)

Me võime protseduure kutsuda parameetriteta, kasutades lihtsalt EXECi märksõna ja protseduuri nime. Nüüd, kui teame, kuidas saame protseduuridega töötada, proovigem mõista, kuidas pesastatud plokke kasutatakse PL / SQL-is.

Pesastatud plokk

Pesastatud plokk pole muud kui ühe või mitme PL / SQL-i ploki kombinatsioon, et saada parem kontroll programmi täitmise ja erakordse käsitsemise üle.

Siin on lihtne näide pesastatud plokist.

MÄÄRA SERVEROUTPUT SUURUSEGA 1000000 DEKLAREERI n_emp_id EMPLOYEES.EMPLOYEE_ID% TYPE: = & emp_id1 BEGIN DECLARE n_emp_id töötajad.töötaja_id% TYPE: = & emp_id2 v_nimi töötajad.esimene_nimi% TYPE BUTIN SELECT eesnimi töötaja '|| n_emp_id ||' on '|| v_name) VÄLJA, KUI no_data_found THEN DBMS_OUTPUT.PUT_LINE (' Employee '|| n_emp_id ||' not found ') END END /

Välimist PL / SQL plokki ülaltoodud näites nimetatakse vanemplokiks või ümbritsevaks plokiks, sisemist plokki seevastu tuntakse kui alamplokki või suletud plokki.

Mõlemas plokis pole samade nimedega muutujate kasutamine hea mõte, kuna käivitamise ajal alistab lapsploki muutuja vanemploki muutuja. See juhtub seetõttu, et PL / SQL annab muutujale oma prioriteedi oma ploki sees.

Blokeeri silt

Sellest probleemist saame üle plokisildiga, mis aitab meil sildi abil viidata plokkide sees olevatele muutujatele.

Siin on lihtne näide selle kohta, kuidas saame kasutada plokisilti.

 <>DEKLAREERI ... ALUSTAGE ... LÕPPE

Plokisildi kasutamine aitab parandada koodi loetavust, omandada parema kontrolli ja teha viiteid plokkidele. Nüüd, kui teame, kuidas pesastatud plokkidega töötada, proovime mõista, kuidas IF STATEMENT töötab PL / SQL-is.

IF avaldus

PL / SQL-il on kolm IF-AVALDUST

  • KUI SIIS - See on kõige lihtsam IF-LAUS, kui tingimus on tõene, täidetakse laused, kui tingimus on vale, ei tee see midagi.

  • KUI-SIIS-MUU - Selles lisatakse ELSE klausel alternatiivse lausete jada jaoks.

  • KUI-SIIS-ELSEIF - See võimaldab meil järjestikku teha mitu testitingimust.

KUI-SIIS süntaks

KUI tingimus SIIS JÄRK_NIMEKIRJAD LÕPP KUI

KUI-SIIS-MUU Süntaks

KUI tingimus THEN Sekvence_of_if_statements ELSE järjekord_of_else_statements END IF

KUI-SIIS-ELSEIF-i süntaks

IF tingimus1 SIIS jada_statistika jada1 ELSIF tingimus2 SIIS järjestus_jaamade_jaotised2 TEISE järjestuse_seisukoha_lause3 LÕPP KUI

Nüüd, kui IF-i avaldus on lõpule jõudnud, vaatame lauset CASE PL / SQL-is.

JUHTUMI avaldus

CASE-lause aitab põhimõtteliselt selektoril põhinevate lausete jada käivitamisel. Selektor võib sel juhul olla ükskõik milline, see võib olla muutuja, funktsioon või lihtne avaldis. Siin on lihtne näide CASE-lause süntaksi kuvamiseks PL / SQL-is.

[<>] JUHTUM [TÕSI | selektor] MILLAL avaldis1 SIIS jada_seadete jada1 MIKS avaldis2 SIIS jada_seadete jada2 ... MILLAL avaldisN SIIS jada_näitajate järjestusN [ELSE järjekord_jaotisedN + 1] LÕPP KASUTUS [sildi_nimi]

Ülaltoodud süntaksis tuleb märksõna CASE järel valija. PL / SQL hindab valijat ainult üks kord, et teha kindlaks, milline lause tuleb käivitada.

Valija järgib märksõna WHEN. Kui avaldis rahuldab valijat, käivitatakse vastav lause THEN märksõna järel.

Nüüd, kui teame, kuidas CASE-lauset kasutada, proovime mõista, kuidas me PL / SQL-i silmuslausendeid kasutame.

Loop avaldus

PL / SQL-i loop-lause on iteratiivne lause, mis võimaldab teil mitu korda järjestada lausete jada. Siin on lihtne näide silmuse lause süntaksi kuvamiseks PL / SQL-is.

LOOP järjekord_statistikatele LÕPP LOOP

Märksõnade LOOP ja END LOOP vahel peab olema vähemalt üks käivitatav lause.

kuidas luua müügijõu rakendust

Silmus EXIT-avaldusega

EXIT ja EXIT, kui avaldused võimaldavad teil kontuurist väljuda. EXIT WHEN-lause lõpetab tsükli tinglikult, samal ajal kui EXIT lõpetab täitmise tingimusteta.

LOOP ... VÄLJU, KUI tingimus LÕPU LOOP

Loop silt

Silmuse silti kasutatakse silmusloenduri muutuja nime kvalifitseerimiseks, kui seda kasutatakse pesastatud silmus. Järgneb silmusetaili süntaks.

 <>LOOP järjestuse_statistika LÕPP silti LOOP

Nüüd, kui teame, kuidas tsüklilauseid kasutada, laseme parema mõistmise huvides heita pilgu silmuse lausetele.

Kuigi Loop avaldus

Kui täitmise arv pole määratletud enne täitmise algust, saame kasutada silmuse WHILE lauset. Järgmist süntaksit kasutatakse PL / SQL-i WHILE-tsükli lause jaoks.

KUI tingimus LOOP jada_statistika järjestus LÕPP LOOP

Süntaksi tingimus on tõeväärtus või avaldis, mille väärtuseks on TRUE, FALSE või NULL. Kui tingimus on TÕENE, täidetakse laused, kui see on VÄÄR, siis täitmine peatub ja juht liigub järgmise käivitatava käsu juurde.

Nüüd, kui me teame, kuidas saame kasutada WHILE tsükli lauset, heitkem pilk FOR-tsükli avaldusele.

Loop-avalduse jaoks

PL-i / SQL-i FOR-tsükli lause võimaldab meil käivitada lausete järjestuse kindla arvu kordade jooksul. Järgneb süntaks, mida kasutada FOR-tsükli lause PL / SQL-is

FOR loop_counter IN [REVERSE] alumine_köidetud .. suurem_sidetud LOOP_jaotiste järjestus LÕPP LOOP

PL / SQL loob lokaalse muutuja loop_counter automaatselt koos andmetüübiga INTEGER, et te ei peaks seda selgesõnaliselt deklareerima. Alumine osa..kõrge on vahemik, mille ulatuses silmus kordub. Samuti peab teil olema vähemalt üks käivitatav lause LOOP ja END LOOP märksõnade vahel.

Nüüd, kui me teame, kuidas me saame PL / SQL-i silmuslausendeid kasutada, heitkem pilk PL / SQL-i erakordsele käsitsemisele.

Erakordne käitlemine

PL / SQL-is käsitletakse mis tahes viga erandina. Erandit võib käsitleda eritingimusena, mis võib täitmise voogu muuta või muuta. PL / SQL-is on kahte tüüpi erandeid.

  • Süsteemi erand - See tõuseb vea tuvastamisel PL / SQL-i käitusajaga.

  • Programmeerija määratletud erand - Need erandid on programmeerija määratletud konkreetses rakenduses.

Erandi määratlemine

Enne selle tõstmist tuleb deklareerida PL / SQL-i erand. Erandi saame määratleda märksõna EXCEPTION abil, nagu oleme teinud allpool toodud näites.

EXCEPTION_NAME EXCEPTION

Erandi tegemiseks kasutame märksõna RAISE.

TÕSTA ERANDIT

Nii et see oli kõik PL / SQLi kohta, loodan, et see artikkel on aidanud teil oma teadmistele väärtust lisada. SQL-i või andmebaaside kohta lisateabe saamiseks vaadake meie põhjalikku lugemisloendit siit: .

Kui soovite saada struktureeritud koolitust MySQL-i kohta, vaadake meie mis on varustatud juhendajate juhitud elava koolituse ja reaalse elu projektikogemusega. See koolitus aitab teil MySQL-i põhjalikult mõista ja aitab teil selle teema üle meisterlikkust saavutada.

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ” PL / SQLi õpetus ”Ja pöördun teie poole tagasi.