sql >> Database >  >> RDS >> Database

Hoe opgeslagen procedures in SQL maken?

Procedures zijn de subprogramma's die kunnen worden gemaakt en opgeslagen in de database als database-objecten. Net zoals u dat in andere talen kunt, kunt u ook procedures in SQL maken en neerzetten. Laten we in dit artikel de procedures in SQL onderzoeken met syntaxis en voorbeelden.

De onderwerpen die in het artikel worden besproken zijn:

  • Wat is een procedure in SQL?
  • SQL-proceduresyntaxis
  • Voorbeeldprocedure in SQL
  • Voordelen van SQL-procedures

Wat is een procedure in SQL?

Een procedure in SQL (vaak aangeduid als opgeslagen procedure), is een herbruikbare eenheid die de specifieke bedrijfslogica van de applicatie omvat. Een SQL-procedure is een groep SQL-instructies en logica, samen gecompileerd en opgeslagen om een ​​specifieke taak uit te voeren.

Hieronder staan ​​de belangrijkste kenmerken van de SQL-procedures:

  • Eenvoudig te implementeren omdat ze een zeer eenvoudige, sterk getypte taal op hoog niveau gebruiken
  • Ondersteunt drie soorten parameters, namelijk invoer-, uitvoer- en invoer-uitvoerparameters.
  • Betrouwbaarder dan vergelijkbare externe procedures.
  • SQL-procedures bevorderen herbruikbaarheid en onderhoudbaarheid.
  • Ondersteunt een eenvoudig, maar krachtig model voor conditie- en foutafhandeling.
  • Retourneer een statuswaarde naar een aanroepende procedure of batch om het succes of falen en de reden voor het falen aan te geven.

Nu u weet wat procedures zijn en waarom ze nodig zijn, gaan we de syntaxis en het voorbeeld van procedures in SQL bespreken.

Syntaxis van procedures in SQL

Het volgende illustreert de basissyntaxis van het maken van een procedure in SQL:


CREATE [ OR REPLACE] PROCEDURE procedure_name [
(parameter_name [IN | OUT | IN OUT]  type [ ])]
{IS | AS }
BEGIN [declaration_section]
executable_section 
//SQL statement used in the stored procedure
END
GO

Syntaxterminologieën

Parameter

Een parameter is een variabele die een waarde bevat van een geldig SQL-datatype waarmee het subprogramma de waarden kan uitwisselen met de hoofdcode. Met andere woorden, parameters worden gebruikt om waarden door te geven aan de procedure. Er zijn 3 verschillende soorten parameters, namelijk:

  • IN :Dit is de standaardparameter, die altijd de waarden ontvangt van het aanroepende programma. Het is een alleen-lezen variabele binnen de subprogramma's en de waarde ervan kan niet worden gewijzigd binnen het subprogramma.
  • UIT: Het wordt gebruikt om uitvoer van de subprogramma's te krijgen.
  • IN UIT: Deze parameter wordt zowel gebruikt voor het geven van invoer als voor het verkrijgen van uitvoer van de subprogramma's.

Andere terminologieën

  • procedurenaam specificeert de naam van de procedure. Het moet uniek zijn.
  • [OF VERVANGEN] optie staat de wijziging van een bestaande procedure toe.
  • IS | AS-clausule, ze stellen de context in om de opgeslagen procedure uit te voeren. Het verschil is dat het sleutelwoord 'IS' wordt gebruikt wanneer de procedure is genest in andere blokken en als de procedure op zichzelf staat, wordt 'AS' gebruikt.
  • Code_Block declareert de procedurele verklaringen die alle verwerking binnen de opgeslagen procedure afhandelen. De inhoud van het code_block hangt af van de regels en proceduretaal die door de database worden gebruikt.

Procedure in SQL:voorbeelden

Voorbeeld1

In het volgende voorbeeld wordt een eenvoudige procedure gemaakt waarbij het welkomstbericht op het scherm wordt weergegeven wanneer het wordt uitgevoerd. De procedure is dan:

CREATE OR REPLACE PROCEDURE welcome_msg
(para1_name IN VARCHAR2)
IS 
BEGIN 
    dbms_output.put_line (‘Hello World! '|| para1_name);
END; 
/

Voer de opgeslagen procedure uit. Een zelfstandige procedure kan op twee manieren worden aangeroepen −

  • De UITVOEREN . gebruiken zoekwoord
  • De naam van de procedure aanroepen vanuit een SQL-blok

De bovenstaande procedure kan als volgt worden aangeroepen met het sleutelwoord Execute:

 EXEC welcome_msg (‘Welcome to Edureka!’);

Uitvoer

Hello World! Welcome to Edureka 

De procedure wordt uitgevoerd en het bericht wordt afgedrukt als "Hallo wereld! Welkom bij Edureka”.

Voorbeeld2

Stel dat je een tabel hebt met details van de medewerker, zoals EmployeId, Firstname, Lastname en DepartmentDetails.

In dit voorbeeld wordt een SQL-procedure gemaakt die de naam van een werknemer retourneert wanneer de EmployeId wordt gegeven als de invoerparameter voor de opgeslagen procedure. De procedure is dan:

Create  PROCEDURE GetStudentName 
(
@employeeID INT,                       --Input parameter ,  employeID of the employee
@employeName VARCHAR(50)  OUT  --Output parameter, employeeName of employee
AS
BEGIN
SELECT @employeName= Firstname+' '+Lastname FROM Employee_Table WHERE EmployeId=@employeID
END

Uit te voeren stappen:

  • Declareer @employeName als nvarchar(50)
  • EXEC GetStudentName 01, uitvoer @employeName
  • selecteer @employeName

De bovenstaande procedure over het geven van een werknemer-ID als invoer geeft de naam van die specifieke werknemer terug. Stel dat als we een uitvoerparameter hebben, we eerst de variabele moeten declareren om de uitvoerwaarden te verzamelen. Laten we nu eens kijken naar de voordelen van de procedure in SQL.

Voordelen van procedures in SQL

Het belangrijkste doel van opgeslagen procedures in SQL is om directe SQL-query's uit de code te verbergen en de prestaties van databasebewerkingen zoals het selecteren, bijwerken en verwijderen van gegevens te verbeteren. Andere voordelen van procedure in SQL zijn:

  • Vermindert de hoeveelheid informatie die naar de databaseserver wordt verzonden. Het kan een belangrijker voordeel worden wanneer de bandbreedte van het netwerk minder is.
  • Maakt de herbruikbaarheid van code mogelijk
  • Verbetert de beveiliging omdat u de gebruiker toestemming kunt geven voor het uitvoeren van de Opgeslagen procedure in plaats van toestemming te geven voor de tabellen die in de Opgeslagen procedure worden gebruikt.
  • Ondersteuning van geneste procedure-aanroepen naar andere SQL-procedures of procedures die in andere talen zijn geïmplementeerd.

Tot slot, procedures in SQL (opgeslagen procedures) vergroten niet alleen de mogelijkheid om de code opnieuw te gebruiken, maar verhogen ook de prestaties van de database. Hoe? Door het netwerkverkeer te verminderen door de hoeveelheid informatie die over het netwerk wordt verzonden te verminderen. Hiermee zijn we aan het einde van dit artikel gekomen.

Als je meer wilt weten over MySQL en deze open-source relationele database wilt leren kennen, bekijk dan onzeMySQL DBA-certificeringstraining die wordt geleverd met een door een instructeur geleide live training en real-life projectervaring. Deze training zal u helpen MySQL diepgaand te begrijpen en u te helpen het onderwerp onder de knie te krijgen.

Heeft u een vraag voor ons? Vermeld het in het opmerkingengedeelte van deze 'Procedures in SQL; artikel en we nemen contact met u op.


  1. Een lijst met tabellen retourneren van een gekoppelde server in SQL Server (T-SQL-voorbeelden)

  2. WEEK() Voorbeelden – MySQL

  3. Postgres - Rijen naar kolommen transponeren

  4. Cloud Vendor Deep-Dive:PostgreSQL op AWS Aurora