Kaip sukurti saugomas procedūras SQL?



Šis straipsnis apie procedūras SQL padės jums suprasti, kas yra procedūros ir kaip jos padidina duomenų bazės našumą jas įgyvendinus.

Procedūros yra paprogramės, kurias galima sukurti ir išsaugoti kaip duomenų bazės objektai. Kaip ir kitomis kalbomis, galite kurti ir mesti procedūras SQL taip pat. Šiame straipsnyje panagrinėkime procedūras SQL su sintakse ir pavyzdžiais.

final vs pagaliau vs finalize

Straipsnyje aptariamos šios temos:





Kas yra procedūra SQL?

Procedūra (dažnai vadinama saugoma procedūra),yra daugkartinio naudojimo vienetas, apimantis konkrečią programos verslo logiką. SQL procedūra yra SQL sakinių ir logikos grupė, sudaryta ir saugoma kartu tam tikrai užduočiai atlikti.

SQL procedūra - procedūros SQL - „Edureka“



Toliau išvardytos pagrindinės SQL procedūrų savybės:

  • Lengva įgyvendinti, nes jie naudoja labai paprastąaukšto lygio, labai tipiškos kalbos
  • Palaiko trijų tipų parametrus:įvesties, išvesties ir įvesties-išvesties parametrai.
  • Patikimesnis nei lygiavertisišorinės procedūros.
  • SQL procedūros skatina pakartotinį naudojimą ir palaikomumą.
  • Palaiko paprastą, bet galingą būklės ir klaidų valdymo modelį.
  • Grąžinkite būsenos vertę iškvietimo procedūrai ar paketui, nurodydami sėkmę ar nesėkmę ir gedimo priežastį.

Dabar, kai žinote, kokios yra procedūros ir kodėl jos reikalingos, aptarkime SQL sintaksę ir pavyzdį.

Procedūrų sintaksė SQL

Toliau pateikiama pagrindinė SQL sukūrimo procedūros sintaksė:



SUKURTI [ARBA PAKEISTI] PROCEDŪRĄ procedūros_pavadinimas [(parametro_pavadinimas [IN | OUT | IN OUT] tipas [])] IS BEGIN [deklaracijos_sekcija] vykdomojo_skiltis // SQL sakinys naudojamas saugomoje procedūroje PABAIGOTI

Sintaksės terminologijos

Parametras

Parametras yra kintamasis, kuris turi bet kurios vertėsgaliojantis SQL duomenų tipas, per kurį paprogramė gali keistis reikšmėmis su pagrindiniu kodu. Kitaip tariant, pparametrai naudojami norint perduoti reikšmes procedūrai. Yra 3 skirtingų tipų parametrai, kurie yra šie:

  • IN : Tjo yra numatytasis parametras, kuris visada gauna reikšmes iš skambinančios programos. Tai yra tik skaitomas kintamasis paprogramių viduje ir jo vertės negalima pakeisti pogrupio viduje.
  • OUT: tai yranaudojamas gaunant iš paprogramių išvestį.
  • ĮJUNGTA: Taiparametras naudojamas tiek įvedant, tiek gaunant išvesties iš paprogramių.

Kitos terminijos

  • procedūros pavadinimas nurodo procedūros pavadinimą. Ji turėtų būti unikali.
  • [OR REPLACE] parinktis leidžia modifikuoti esamą procedūrą.
  • IS | AS sąlyga, jie nustatokontekstą atlikti saugomą procedūrą.Skirtumas yra tas, kad raktinis žodis „IS“ naudojamas, kai procedūra įdedama į kai kuriuos kitus blokus, o jei procedūra yra atskira, naudojama „AS“.
  • „Code_Block“ deklaruoja procedūrinius pareiškimus, kurie apdoroja visą apdorojimą per saugomą procedūrą. Code_block turinys priklauso nuo taisyklių ir procedūrinės kalbos, kurią naudoja duomenų bazė .

Procedūra SQL: pavyzdžiai

sujungti rūšiuoti c ++ šaltinio kodą

1 pavyzdys

Šis pavyzdys sukuria paprastą procedūrą, kurią vykdant ekrane rodomas pasveikinimo pranešimas. Tada procedūra bus:

SUKURTI ARBA PAKEISTI PROCEDŪRĄ welcome_msg (para1_name IN VARCHAR2) PRADŽIA dbms_output.put_line (‘Hello World!’ || para1_name) END /

Atlikite išsaugotą procedūrą. Atskirą procedūrą galima vadinti dviem būdais ir minusas

  • Naudojant Vykdyti raktinis žodis
  • Procedūros pavadinimo iškvietimas iš SQL bloko

Pirmiau aprašytą procedūrą galima iškviesti naudojant „Execute“ raktinį žodį taip:

EXEC welcome_msg (‘Sveiki atvykę į Edureka!’)

Rezultatas

Labas pasauli! Sveiki atvykę į „Edureka“

Procedūra vykdoma ir pranešimas išspausdinamas kaip „Sveikas pasauli! Sveiki atvykę į Edureka “.

2 pavyzdys

Tarkime, kad turite lentelę su išsamia informacija apie „Emplyoee“, pvz., „EmployeId“, vardą, pavardę ir „DepartmentDetails“.

Šis pavyzdys sukuria SQL procedūrą, kuri grąžins darbuotojo vardą, kai „EmployeId“ pateikiamas kaip įvesties parametras į saugomą procedūrą. Tada procedūra bus:

Sukurti procedūrą „GetStudentName“ (@employeeID INT, --Input parametras, darbuotojo @ darbuotojo vardas VARCHAR (50) OUT - Output parametras, darbuotojo vardas darbuotojui AS BEGIN SELECT @ployeName = vardas + '+ pavardė iš darbuotojo_Table WHERE EmployeId = @ployeID PABAIGA

Vykdymo veiksmai:

  • Paskelbkite @employeName kaip nvarchar (50)
  • EXEC „GetStudentName 01“, @employeName išvestis
  • pasirinkite @employeName

Pirmiau nurodyta procedūra, suteikiant darbuotojo ID kaip įvestį, grąžina konkretaus darbuotojo vardą. Tarkime, jei turime išėjimo parametrą tPirmiausia turime deklaruoti kintamąjį, kad surinktume išvesties vertes.Dabar patikrinkime procedūros SQL privalumus.

Procedūrų SQL pranašumai

Pagrindinis SQL saugomų procedūrų tikslas yra tiesioginis paslėpimas SQL užklausos iš kodo ir pagerinti duomenų bazės operacijų, tokių kaip duomenų pasirinkimas, atnaujinimas ir ištrynimas, našumą. Kiti SQL procedūros pranašumai yra šie:

fibonacci skaičius c ++
  • Sumažina informacijos, siunčiamos į duomenų bazės serverį, kiekį. Tai gali tapti svarbesne nauda, ​​kai tinklo pralaidumas yra mažesnis.
  • Įgalina kodo pakartotinį naudojimą
  • Patobulina saugumą, nes galite suteikti vartotojui leidimą vykdyti procedūrą „Stored“, užuot suteikę leidimą lentelėse, naudojamose „Stored“.
  • Palaikykite įdėtus procedūrų iškvietimus į kitas SQL procedūras arba procedūras, įdiegtas kitomis kalbomis.

Pabaigai, procedūros SQL (saugomos procedūros)ne tik padidina galimybę pakartotinai naudoti kodą, bet ir padidina duomenų bazės našumą. Kaip? Sumažinus tinklo srautą, sumažinant per tinklą siunčiamos informacijos kiekį. Tuo mes priėjome šio straipsnio pabaigą.

Jei norite sužinoti daugiau apie „MySQL“ ir susipažinkite su šia atviro kodo reliacine duomenų baze, tada patikrinkite mūsų kuris ateina su instruktorių vedamomis tiesioginėmis treniruotėmis ir realių projektų patirtimi. Šie mokymai padės jums išsamiau suprasti „MySQL“ ir padės jums įsisavinti šį dalyką.

Turite mums klausimą? Prašau tai paminėti šio straipsnio „Procedūros SQL straipsnyje“ skiltyje ir mes su jumis susisieksime.