0% encontró este documento útil (0 votos)
40 vistas4 páginas

Guía de Procedimientos Almacenados en MySQL

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
40 vistas4 páginas

Guía de Procedimientos Almacenados en MySQL

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Procedimientos Almacenados

Un procedimiento almacenado es un conjunto de sentencias SQL que se


guardan en una base de datos y pueden ser ejecutadas en cualquier momento.
Son similares a las funciones en la programación convencional y ayudan a
automatizar tareas repetitivas, mejorar el rendimiento y reducir la cantidad de
datos transferidos entre la aplicación y la base de datos.

Sintaxis:
La sintaxis básica para crear un procedimiento almacenado en MySQL es la
siguiente:
Como un procedimiento almacenado puede tener muchos comandos SQL entre
las palabras claves begin y end debemos informar de alguna manera a MySQL
que no ejecute dichos comandos. Para ello utilizamos el comando 'delimiter'
cambiando el caracter ';' como fin de instrucción.
Utilizamos el delimitador '//' como podría ser cualquier otro, por ejemplo '$'.

DELIMITER //
CREATE PROCEDURE nombre_del_procedimiento (parámetros)
BEGIN
-- Código SQL aquí
END //
DELIMITER ;

DELIMITER: Cambia el delimitador de MySQL para permitir que el


procedimiento se ejecute sin problemas. Por defecto, el delimitador es punto y
coma (;).
CREATE PROCEDURE: Crea el procedimiento almacenado con el nombre
indicado.
parámetros: Se pueden definir parámetros de entrada (IN), de salida (OUT) o
ambos (INOUT).
BEGIN ... END: Encierra el conjunto de instrucciones SQL que constituyen el
cuerpo del procedimiento.

Ejemplos:
Procedimientos Almacenados

1. Este procedimiento calcula el precio total de una orden en base


a un descuento y muestra el resultado:
DELIMITER //
CREATE PROCEDURE calcular_total(IN precio DECIMAL(10,2), IN descuento
DECIMAL(5,2), OUT total DECIMAL(10,2))
BEGIN
SET total = precio - (precio * descuento / 100);
END //

DELIMITER ;

 IN precio: Precio base de un producto.


 IN descuento: Descuento aplicado en porcentaje.
 OUT total: Precio final calculado con el descuento.
Para llamar el procedimiento:
CALL calcular_total(100.00, 10, @resultado);
SELECT @resultado;

2. Este procedimiento obtiene el nombre completo de un cliente a


partir de su ID y lo almacena en un parámetro de salida.
DELIMITER //
CREATE PROCEDURE obtener_nombre_cliente(IN cliente_id INT, OUT
nombre_completo VARCHAR(100))
BEGIN
SELECT CONCAT(nombre, ' ', apellido) INTO nombre_completo
FROM clientes
WHERE id = cliente_id;
END //
DELIMITER ;

Para llamar el procedimiento:


Procedimientos Almacenados

CALL obtener_nombre_cliente(1, @nombre);


SELECT @nombre;

3. Este procedimiento calcula el factorial de un número dado


utilizando un bucle WHILE.
DELIMITER //
CREATE PROCEDURE calcular_factorial(IN numero INT, OUT resultado BIGINT)
BEGIN
DECLARE i INT DEFAULT 1;
SET resultado = 1;
WHILE i <= numero DO
SET resultado = resultado * i;
SET i = i + 1;
END WHILE;
END //
DELIMITER ;

Para llamar el procedimiento:


CALL calcular_factorial(5, @resultado);
SELECT @resultado;

4. Este procedimiento verifica si un usuario existe en una tabla de


usuarios y devuelve un mensaje indicando si el usuario está
registrado.
DELIMITER //
CREATE PROCEDURE verificar_usuario(IN usuario_nombre VARCHAR(50), OUT
mensaje VARCHAR(50))
BEGIN
Procedimientos Almacenados

DECLARE existe INT;


SELECT COUNT(*) INTO existe FROM usuarios WHERE nombre =
usuario_nombre;
IF existe > 0 THEN
SET mensaje = 'Usuario encontrado';
ELSE
SET mensaje = 'Usuario no encontrado';
END IF;
END //
DELIMITER ;

Para llamar el procedimiento:


CALL verificar_usuario('juan', @mensaje);
SELECT @mensaje;

Referencias bibliográficas:
 Hernández, J. J. S. (n.d.). Unidad 12. Triggers, procedimientos y funciones
en MySQL.
[Link]
tos
 Temario:Procedimientos almacenados (crear - ejecutar). (n.d.).
[Link]
[Link]?cod=102
 Dyson, X., & Dyson, X. (2021, April 16). Cómo crear y usar
procedimientos almacenados en MySQL | Cable Naranja. Cable Naranja.
[Link]
almacenados-en-mysql/

También podría gustarte