Hvordan oprettes lagrede procedurer i SQL?



Denne artikel om procedurer i SQL hjælper dig med at forstå, hvad procedurer er, og hvordan de øger ydeevnen for en database, når de implementeres.

Procedurer er de underprogrammer, der kan oprettes og gemmes i som databaseobjekter. Ligesom du kan på andre sprog, kan du oprette og slippe procedurer i SQL såvel. Lad os i denne artikel udforske procedurer i SQL med syntaks og eksempler.

Emnerne diskuteret i artiklen er:





Hvad er en procedure i SQL?

En procedure i (ofte omtalt som lagret procedure),er en genanvendelig enhed, der indkapsler applikationens specifikke forretningslogik. En SQL-procedure er en gruppe af SQL-udsagn og logik, kompileret og lagret sammen for at udføre en bestemt opgave.

SQL Procedure - Procedurer i SQL - Edureka



Nedenfor er vist nøglefunktioner i SQL-procedurerne:

  • Let at implementere, fordi de bruger en meget enkelhøjt niveau, stærkt skrevet sprog
  • Understøtter tre typer parametre, nemliginput-, output- og input-outputparametre.
  • Mere pålidelig end tilsvarendeeksterne procedurer.
  • SQL-procedurer fremmer genanvendelighed og vedligeholdelse.
  • Understøtter en enkel, men kraftig tilstand og fejlhåndteringsmodel.
  • Returner en statusværdi til en opkaldsprocedure eller batch for at angive succes eller fiasko og årsagen til fiasko.

Nu hvor du ved, hvad procedurer er, og hvorfor de er nødvendige, skal vi diskutere syntaks og eksempel på procedure i SQL.

Syntaks af procedurer i SQL

Følgende illustrerer den grundlæggende syntaks ved oprettelse af en procedure i SQL:



OPRET [ELLER UDSKIFT] PROCEDURE procedure_navn [(parameternavn [IN | UD | IN UD] type [])] ER BEGIN [erklæring_sektion] eksekverbar_sektion // SQL-sætning brugt i den lagrede procedure END GO

Syntaksterminologier

Parameter

En parameter er en variabel, der indeholder en værdi af en hvilken som helstgyldig SQL-datatype, gennem hvilken underprogrammet kan udveksle værdierne med hovedkoden. Med andre ord, sarametre bruges til at overføre værdier til proceduren. Der er 3 forskellige typer parametre, som er som følger:

  • I : Thans er standardparameteren, som altid modtager værdierne fra opkaldsprogrammet. Det er en skrivebeskyttet variabel inde i underprogrammerne, og dens værdi kan ikke ændres inde i underprogrammet.
  • UD: det erbruges til at få output fra underprogrammerne.
  • IND UD: Detteparameter bruges til både at give input og til at få output fra underprogrammerne.

Andre terminologier

  • procedure-navn angiver procedurens navn. Det skal være unikt.
  • [ELLER UDSKIFT] indstillingen tillader ændring af en eksisterende procedure.
  • ER | Som klausul indstiller dekontekst for at udføre den lagrede procedure.Forskellen er, at nøgleordet 'IS' bruges, når proceduren er indlejret i nogle andre blokke, og hvis proceduren er uafhængig, anvendes 'AS'.
  • Code_Block erklærer de proceduremæssige udsagn, der håndterer al behandling inden for den lagrede procedure. Indholdet af code_block afhænger af reglerne og det proceduremæssige sprog, der bruges af database .

Fremgangsmåde i SQL: Eksempler

Eksempel 1

Følgende eksempel opretter en enkel procedure, der viser velkomstmeddelelsen på skærmen, når den udføres. Derefter vil proceduren være:

OPRET ELLER UDSKIFT PROCEDURE welcome_msg (para1_name I VARCHAR2) ER BEGIN dbms_output.put_line (‘Hello World! '|| para1_name) END /

Udfør den lagrede procedure. En enkeltstående procedure kan kaldes på to måder og minus

hvordan man bruger vent og underret i java
  • Bruger UDFØR nøgleord
  • Henter navnet på proceduren fra en SQL-blok

Ovenstående procedure kan kaldes ved hjælp af Execute-nøgleord som følger:

EXEC welcome_msg ('Velkommen til Edureka!')

Produktion

Hej Verden! Velkommen til Edureka

Proceduren udføres, og meddelelsen udskrives som “Hello World! Velkommen til Edureka ”.

Eksempel 2

Lad os antage, at du har en tabel med Emplyoee-detaljer som EmployeId, Firstname, Lastname og DepartmentDetails.

Dette eksempel opretter en SQL-procedure, der returnerer et medarbejdernavn når medarbejderen er angivet som inputparameter til den lagrede procedure. Derefter vil proceduren være:

Opret PROCEDURE GetStudentName (@employeeID INT, - Inputparameter, medarbejder-ID for medarbejderen @employeName VARCHAR (50) OUT - Output-parameter, medarbejdernavn for medarbejder SOM BEGIN SELECT @ employeName = Fornavn + '' + Efternavn FRA Medarbejder_Tabel HVOR EmployeId = @ medarbejderID ENDE

Trin til udførelse:

  • Erklær @employeName som nvarchar (50)
  • EXEC GetStudentName 01, @employeName output
  • vælg @ medarbejdernavn

Ovenstående procedure for at give medarbejder-id som input returnerer navnet på den pågældende medarbejder. Antag, at hvis vi har en outputparameter tnår vi først skal erklære variablen for at samle outputværdierne.Lad os nu se fordelene ved proceduren i SQL.

Fordele ved procedurer i SQL

Hovedformålet med lagrede procedurer i SQL er at skjule direkte SQL-forespørgsler fra koden og forbedre ydeevnen for databasefunktioner såsom at vælge, opdatere og slette data. Andre fordele ved procedure i SQL er:

  • Reducerer mængden af ​​information, der sendes til databaseserveren. Det kan blive en vigtigere fordel, når båndbredden på netværket er mindre.
  • Aktiverer genanvendelighed af kode
  • Forbedrer sikkerheden, da du kan give brugeren tilladelse til at udføre den lagrede procedure i stedet for at give tilladelse til de tabeller, der er brugt i den lagrede procedure.
  • Support nestet procedure kald til andre SQL-procedurer eller procedurer implementeret på andre sprog.

For at afslutte, procedurer i SQL (lagrede procedurer)forbedrer ikke kun muligheden for at genbruge koden, men øger også databasens ydeevne. Hvordan? Ved at reducere netværkets trafik ved at reducere mængden af ​​information, der sendes over netværket. Med dette er vi kommet til slutningen af ​​denne artikel.

Hvis du ønsker at lære mere om MySQL og lær denne open source relationsdatabase, og tjek derefter vores som kommer med instruktørstyret live træning og projektoplevelse i det virkelige liv. Denne træning hjælper dig med at forstå MySQL i dybden og hjælper dig med at opnå mestring over emnet.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne 'Procedurer i SQL-artikel, så vender vi tilbage til dig.