Documentos de Académico
Documentos de Profesional
Documentos de Cultura
funciones
4.1. Procedimientos almacenados
La ventaja es que libera cualquier tarea pesada que podría tener nuestra
aplicación, aunque se debe hacer cuando sea necesario ya que crear de manera
excesiva procedimientos almacenados puede ser una mala práctica, ya que se
puede tener a futuro problemas en cuanto a la organización del código u otras
cosas
4.1.1. Sintaxis
Los parámetros indican la entrada y salida de datos que podríamos usar para el
procedimiento y la salida de datos que devolvería el procedimiento almacenado.
En el siguiente ejemplo se observa un procedimiento almacenado para contar el
número de productos por código:
DELIMITER\\
CREATE PROCEDURE `contar_productos` (IN codigo varchar(5),
OUT nproductos INT)
BEGIN
SELECT
COUNT(*)
INTO
nproductos
FROM
productos
WHERE
cprincipal=codigo;
END//
DELIMITER;
4.2. Funciones
Una función en MySQL es una rutina creada para tomar unos parámetros,
procesarlos y retornar en una salida.
4.2.1. Sintaxis
Creación de la función:
DELIMITER \\
CREATE FUNCTION EXT_PRIORIDAD (cliente_prioridad VARCHAR(5))
RETURNS
VARCHAR(20)
BEGIN
CASE cliente_prioridad
WHEN 'A' THEN
RETURN 'Alto';
WHEN 'M' THEN
RETURN 'Medio';
WHEN 'B' THEN
RETURN 'Bajo';
ELSE
RETURN 'NN';
END CASE;
END//
DELIMITER;
FROM CLIENTE
Para actualizar una función usamos el comando ALTER FUNCTION con esta
sentencia podemos cambiar los atributos de la función, pero no podremos
cambiar el cuerpo. La sintaxis es la siguiente:
Este tipo de estructuras sólo deben utilizarse cuando no haya otra forma de
manipular conjuntos de datos en una sola instrucción.
4.1.1. Sintaxis
-Este comando declara un cursor. Pueden definir varios recursos en una rutina,
pero cada cursor en un bloque debe tener un nombre único.
FOR select_statement
OPEN cursor_name
-Este comando trata el siguiente registro(si existe) usando el cursor abierto que
se especifique, y avanza el puntero del cursor. Si no existen más registros
disponibles, ocurrirá una condición de Sin Datos con el valor SQLSTATE 02000.
Puede configurar un manejador (handler) para detectar esta condición (o para
una condición NOT FOUND).
CLOSE cursor_name
4.1.2 Ejemplo
DELIMITER $$
CREATE FUNCTION c_lista_turistas() RETURNS VARCHAR(255) READS SQL
DATA
BEGIN
DECLARE fin INTEGER DEFAULT 0;
DECLARE nombreT VARCHAR(50) DEFAULT "";
DECLARE lista VARCHAR(255) DEFAULT "";
4.2. Auditorias