Stored Procedure

Een stored procedure is een verzameling SQL-opdrachten, of kan worden omschreven als een subprogramma met een specifieke naam die in de database is opgeslagen. Het proces dat een stored procedure uitvoert, bestaat uit het ontvangen van invoerparameters, het retourneren van waarden in de vorm van uitvoerparameters naar de aanroeper, en het uitvoeren van gegevensbewerkingen in de database, uitgevoerd door een programma zoals een trigger of een andere stored procedure. Het gebruik van stored procedures heeft verschillende voordelen:

  • Verbetert de prestaties van de applicatie, omdat stored procedures sneller werken dan niet-gecompileerde SQL-opdrachten die door de applicatie worden verzonden.
  • Vermindert netwerkverkeer tussen de database en de applicatie, omdat het niet nodig is om niet-gecompileerde SQL-instructies te verzenden.
  • Kan herhaaldelijk en transparant worden gebruikt in alle applicaties.

Niettemin kent het gebruik van stored procedures ook nadelen:

  • Debuggen is niet mogelijk.
  • Verhoogt de belasting op de serverhardware.
  • Het schrijven ervan is niet eenvoudig en vereist specifieke kennis.

Syntax in Stored Procedure

De syntax die in stored procedures voorkomt:

  • Syntax voor het schrijven van een stored procedure

DELIMITER //

CREATE PROCEDURE procedure_naam()

BEGIN

sql query

END //

DELIMITER ;
  • Syntax voor het aanroepen van een stored procedure

CALL procedure_naam()
  • Syntax voor het declareren van een variabele in een stored procedure

DECLARE variabele_naam datatype(lengte) DEFAULT waarde;
  • Syntax voor een stored procedure met parameters

Er zijn drie modi voor parameters:

  • IN, de standaardmodus waarbij wijzigingen binnen de stored procedure de parameter niet beïnvloeden.
  • OUT, een modus die de parameterwaarde verandert en terugstuurt naar de aanroeper.
  • INOUT, een modus die IN en OUT combineert.

Voorbeeld syntax voor het definiëren van een stored procedure met parameters:

DELIMITER //

CREATE PROCEDURE procedure_naam([modus] [parameter]
[datatype])

BEGIN

sql query

END //

DELIMITER ;

Voorbeeld syntax voor het aanroepen van een stored procedure met parameters:

CALL procedure_naam([parameter_waarde])

Cursor

Een cursor is een object in een database dat wordt gebruikt om de verwerking van specifieke SQL-instructies af te handelen, of kan worden omschreven als een variabele die het resultaat van een query bevat met meer dan één rij of record. Een cursor kan itereren over het aantal rijen in een tabel. Er zijn verschillende eigenschappen van een cursor:

  • Kan niet worden bijgewerkt (alleen lezen).
  • Een cursor beweegt slechts in één richting (niet-scrollbaar).
  • Het bijwerken van de tabel waarnaar de cursor verwijst, wordt afgeraden omdat dit ongewenste resultaten kan opleveren (asensitief).

Syntax in Stored Procedure

De syntax die in cursors voorkomt:

Er zijn verschillende stappen bij het maken van een cursor:

  • Declare, de stap om de cursor te declareren, met de syntax:
DECLARE cursor_naam CURSOR FOR
SELECT_statement;
  • Open, de stap om de cursor te openen of te activeren, met de syntax:
OPEN cursor_naam;
  • Fetch, de stap om gegevens uit de cursor op te halen en vervolgens in een variabele op te slaan, met de syntax:

FETCH cursor_naam INTO lijst_van_variabelen
  • Close, de stap om de cursor te deactiveren, met de syntax:

CLOSE cursor_naam

Verschillen tussen Stored Procedure en Cursor

Het verschil tussen een stored procedure en een cursor is dat een stored procedure alleen declaratie-opdrachten van MySQL bevat, terwijl een cursor het queryresultaat bevat en ook fungeert als een pointer naar dat resultaat. Dit stelt de cursor in staat om complexe bewerkingen uit te voeren die niet door een stored procedure kunnen worden gedaan. Een voorbeeld hiervan is het itereren over records.

Shares:
Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *