Stored Procedure
Een stored procedure is een verzameling SQL-instructies, of kan worden gezien als een subprogramma met een specifieke naam dat in de database wordt opgeslagen.
Het proces dat een stored procedure uitvoert, is het ontvangen van invoerparameters, het retourneren van waarden in de vorm van uitvoerparameters aan de aanroeper, en het uitvoeren van gegevensverwerkingsoperaties in de database die worden uitgevoerd door een programma zoals een trigger of andere stored procedure.
Het gebruik van stored procedures heeft verschillende voordelen, namelijk:
- Verbetert de prestaties van de applicatie, omdat de gemaakte stored procedure sneller wordt uitgevoerd dan de SQL-instructie die door de applicatie wordt verzonden en nog niet is gecompileerd.
- Vermindert het netwerkverkeer tussen database en applicatie, omdat het niet nodig is om niet-gecompileerde SQL te verzenden.
- Kan herhaaldelijk en transparant worden gebruikt in alle applicaties.
Desondanks heeft het gebruik van stored procedures ook enkele nadelen, namelijk:
- Kan niet worden gedebugd.
- Verhoogt de belasting van de serverhardware.
- Het schrijven ervan is niet gemakkelijk en vereist specifieke kennis.
Syntax van Stored Procedures
De syntax van een stored procedure is als volgt:
Syntax voor het schrijven van een Stored Procedure
DELIMITER //
CREATE PROCEDURE nama_procedure()
BEGIN
query sql
END //
DELIMITER ;
Syntax voor het aanroepen van een Stored Procedure
CALL nama_procedure();
Syntax voor het declareren van variabelen in een Stored Procedure
DECLARE nama_variable tipedata(panjang) DEFAULT nilai;
Syntax van Stored Procedure met parameters
Er zijn drie modi voor parameters, namelijk:
IN
De standaardvorm van de parameter, waarbij alle wijzigingen in de stored procedure de parameter niet beïnvloeden.OUT
Een modus die de waarde van de parameter wijzigt en vervolgens terugstuurt naar de aanroeper.INOUT
Een combinatie vanINenOUT.
Voorbeeld van syntax voor het definiëren van een Stored Procedure met parameters
DELIMITER //
CREATE PROCEDURE nama_procedure(
[mode] [parameter] [tipe_data]
)
BEGIN
query sql
END //
DELIMITER ;
Voorbeeld van syntax voor het aanroepen van een Stored Procedure met parameters
CALL nama_procedure([nilai_parameter]);
Cursor
Een cursor is een databaseobject dat wordt gebruikt om de verwerking van specifieke SQL-instructies vast te houden, of kan worden gezien als een variabele die het resultaat van een query met meerdere rijen of records bevat.
Een cursor kan itereren over het aantal rijen in een tabel. Er zijn verschillende eigenschappen van een cursor, namelijk:
- Kan niet worden bijgewerkt (read only).
- Een cursor beweegt slechts in één richting (non-scrollable).
- Het wordt niet aanbevolen om de tabel te updaten waarnaar de cursor verwijst, omdat dit ongewenste resultaten kan opleveren (asensitive).
Syntax van Cursors
Er zijn verschillende stappen in het maken van een cursor, namelijk:
1. Declare
Stap voor het declareren van een cursor, met syntax:
DECLARE nama_cursor CURSOR FOR
pernyataan_SELECT;
2. Open
Stap voor het openen of activeren van een cursor, met syntax:
OPEN nama_cursor;
3. Fetch
Stap voor het ophalen van gegevens uit de cursor en deze vervolgens op te slaan in een variabele, met syntax:
FETCH nama_cursor INTO daftar_variabel;
4. Close
Stap voor het deactiveren van een cursor, met syntax:
CLOSE nama_cursor;
Verschil tussen Stored Procedure en Cursor
Het verschil tussen een stored procedure en een cursor is dat een stored procedure alleen declaratie-instructies van MySQL bevat, terwijl een cursor zowel het queryresultaat als een pointer naar het queryresultaat bevat.
Dit stelt de cursor in staat complexe bewerkingen uit te voeren die niet mogelijk zijn met een stored procedure. Een daarvan is het itereren over records.
Geschreven door
Wilan
Vaste bijdrager van Bali Island Tekno die actief kennis deelt over technologie, programmeren en de wereld van software-engineering.