Procedimiento Almacenado

Un procedimiento almacenado es un conjunto de comandos SQL, o puede describirse como un subprograma con un nombre específico almacenado en la base de datos. El proceso que realiza un procedimiento almacenado consiste en recibir parámetros de entrada, devolver valores en forma de parámetros de salida al llamante y realizar operaciones de manipulación de datos en la base de datos, ejecutadas por un programa como un disparador o otro procedimiento almacenado. El uso de procedimientos almacenados tiene varias ventajas:

  • Mejora el rendimiento de la aplicación, porque los procedimientos almacenados se ejecutan más rápido que los comandos SQL no compilados enviados por la aplicación.
  • Reduce el tráfico de red entre la base de datos y la aplicación, ya que no es necesario enviar instrucciones SQL no compiladas.
  • Se puede utilizar de forma repetida y transparente en todas las aplicaciones.

Sin embargo, el uso de procedimientos almacenados también presenta desventajas:

  • No es posible depurarlos.
  • Aumenta la carga en el hardware del servidor.
  • Su escritura no es sencilla y requiere conocimientos específicos.

Sintaxis de los Procedimientos Almacenados

La sintaxis presente en los procedimientos almacenados:

  • Sintaxis para escribir un procedimiento almacenado

DELIMITER //

CREATE PROCEDURE nombre_procedimiento()

BEGIN

consulta sql

END //

DELIMITER ;
  • Sintaxis para llamar a un procedimiento almacenado

CALL nombre_procedimiento()
  • Sintaxis para declarar una variable en un procedimiento almacenado

DECLARE nombre_variable tipo_dato(longitud) DEFAULT valor;
  • Sintaxis de un procedimiento almacenado con parámetros

Existen tres modos para los parámetros:

  • IN, el modo predeterminado donde los cambios dentro del procedimiento almacenado no afectan al parámetro.
  • OUT, un modo que cambia el valor del parámetro y lo envía de vuelta al llamante.
  • INOUT, un modo que combina IN y OUT.

Ejemplo de sintaxis para definir un procedimiento almacenado con parámetros:

DELIMITER //

CREATE PROCEDURE nombre_procedimiento([modo] [parámetro]
[tipo_dato])

BEGIN

consulta sql

END //

DELIMITER ;

Ejemplo de sintaxis para llamar a un procedimiento almacenado con parámetros:

CALL nombre_procedimiento([valor_parámetro])

Cursor

Un cursor es un objeto en una base de datos que se utiliza para manejar el procesamiento de instrucciones SQL específicas, o puede describirse como una variable que contiene el resultado de una consulta con más de una fila o registro. Un cursor puede iterar sobre el número de filas en una tabla. Existen varias características de un cursor:

  • No se puede actualizar (solo lectura).
  • Un 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 producir resultados no deseados (asensible).

Sintaxis de los Procedimientos Almacenados (para Cursores)

La sintaxis presente en los cursores:

Hay varios pasos en la creación de un cursor:

  • Declare, el paso para declarar el cursor, con la sintaxis:

DECLARE nombre_cursor CURSOR FOR
instrucción_SELECT;
  • Open, el paso para abrir o activar el cursor, con la sintaxis:

OPEN nombre_cursor;
  • Fetch, el paso para recuperar datos del cursor y luego almacenarlos en una variable, con la sintaxis:

FETCH nombre_cursor INTO lista_variables
  • Close, el paso para desactivar el cursor, con la sintaxis:

CLOSE nombre_cursor

Diferencias entre Procedimiento Almacenado y Cursor

La diferencia entre un procedimiento almacenado y un cursor es que un procedimiento almacenado solo contiene instrucciones de declaración de MySQL, mientras que un cursor contiene el resultado de la consulta y también actúa como un puntero a dicho resultado. Esto permite al cursor realizar operaciones complejas que un procedimiento almacenado no puede realizar. Una de ellas es la iteración sobre los registros.

m

Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *