Stored Procedure
Un stored procedure es un conjunto de comandos SQL o, en otras palabras, un subprograma con un nombre específico que se almacena en la base de datos.
El proceso que realiza un stored procedure consiste en recibir parámetros de entrada, luego devolver valores en forma de parámetros de salida a quien lo invoca, y realizar operaciones de procesamiento de datos en la base de datos ejecutadas por un programa como un trigger u otro stored procedure.
El uso de stored procedures tiene varias ventajas:
- Mejora el rendimiento de la aplicación, porque el stored procedure ya compilado se ejecuta más rápido que los comandos SQL enviados por la aplicación que aún no han sido compilados.
- Reduce el tráfico de red entre la base de datos y la aplicación, ya que no es necesario enviar SQL no compilado.
- Puede ser utilizado de forma reutilizable y transparente en todas las aplicaciones.
Sin embargo, el uso de stored procedures también tiene algunas desventajas:
- No se puede depurar.
- Aumenta la carga en el hardware del servidor.
- Su escritura no es fácil y requiere conocimientos específicos.
Sintaxis del Stored Procedure
La sintaxis del stored procedure es la siguiente:
Sintaxis para Escribir un Stored Procedure
DELIMITER //
CREATE PROCEDURE nama_procedure()
BEGIN
query sql
END //
DELIMITER ;
Sintaxis para Llamar un Stored Procedure
CALL nama_procedure();
Sintaxis para Declarar Variables en Stored Procedure
DECLARE nama_variable tipedata(panjang) DEFAULT nilai;
Sintaxis de Stored Procedure con Parámetros
Hay tres modos para los parámetros:
IN
Forma predeterminada del parámetro, donde cualquier cambio en el stored procedure no afecta al parámetro.OUT
Modo que cambia el valor del parámetro y lo devuelve al invocador.INOUT
Modo combinado deINyOUT.
Ejemplo de Sintaxis para Definir un Stored Procedure con Parámetros
DELIMITER //
CREATE PROCEDURE nama_procedure(
[mode] [parameter] [tipe_data]
)
BEGIN
query sql
END //
DELIMITER ;
Ejemplo de Sintaxis para Llamar un Stored Procedure con Parámetros
CALL nama_procedure([nilai_parameter]);
Cursor
Un cursor es un objeto de base de datos que se utiliza para contener el procesamiento de sentencias SQL específicas, o se puede decir que es una variable que contiene el resultado de una consulta con más de una fila o registro.
Un cursor puede iterar sobre tantas filas como tenga la tabla. El cursor tiene varias características:
- No se puede actualizar (solo lectura).
- El cursor solo se mueve en una dirección (no desplazable).
- No se recomienda actualizar la tabla a la que hace referencia el cursor porque puede dar resultados no deseados (asensible).
Sintaxis del Cursor
Hay varias etapas en la creación de un cursor:
1. Declare
Paso para declarar el cursor, con la sintaxis:
DECLARE nama_cursor CURSOR FOR
pernyataan_SELECT;
2. Open
Paso para abrir o activar el cursor, con la sintaxis:
OPEN nama_cursor;
3. Fetch
Paso para obtener datos del cursor y luego almacenarlos en una variable, con la sintaxis:
FETCH nama_cursor INTO daftar_variabel;
4. Close
Paso para desactivar el cursor, con la sintaxis:
CLOSE nama_cursor;
Diferencia entre Stored Procedure y Cursor
La diferencia entre un stored procedure y un cursor es que el stored procedure solo contiene declaraciones de comandos de MySQL, mientras que el cursor contiene el resultado de la consulta y actúa como un puntero al resultado de la consulta.
Esto permite que el cursor realice comandos complejos que un stored procedure no puede realizar. Uno de ellos es la iteración sobre registros.
Escrito por
Wilan
Colaborador permanente de Bali Island Tekno que activamente comparte conocimientos sobre tecnología, programación y el mundo de la ingeniería de software.