Está en la página 1de 20

Automatización de tareas:

construcción de guiones
de administración
Resumen
Capítulo 4 del libro Administración de sistemas gestores
de bases de datos.
Luis Hueso Ibañez. Editorial Ra-Ma.
2014
Realizado por Sandra Rivera
HERRAMIENTAS PARA AUTOMATIZAR TAREAS

▪ Automatizar tareas es la clave de una buena


administración.
▪ Hoy en día casi todos los sistemas gestores,
comerciales y libres, cuentan con
herramientas para la automatización. En la
mayoría de casos consisten en:
▫ procedimientos y funciones almacenados
▫ Disparadores o triggers
▫ Posibilidad de usar APIs de distintos lenguajes de
programación como perl, php o python
PROCEDIMIENTOS Y FUNCIONES ALMACENADOS

▪ son un conjunto de comandos SQL que pueden almacenarse


en el servidor. Una vez que se hace, los clientes no necesitan
lanzar cada comando individual sino que pueden en su lugar
llamar al procedimiento almacenado como un único
comando.

▪ Las rutinas almacenadas mejoran el rendimiento ya que se


necesita enviar menos información entre el servidor y el
cliente. El intercambio que hay aumenta la carga del servidor
de la base de datos ya que la mayoría del trabajo se realiza
en la parte del servidor y no en el cliente.
PROCEDIMIENTOS Y FUNCIONES ALMACENADOS

▪ Estas rutinas al ir integradas en la base de datos permiten la


portabilidad a otros sistemas sin necesidad de adaptaciones.

▪ Una función almacenada es un programa almacenado que


devuelve un valor.

▪ Los procedimientos almacenados pueden devolver valores a


través de parámetros OUT o INOUT.

▪ A diferencia de los procedimientos almacenados, las


funciones almacenadas se pueden utilizar en expresiones y
pueden incluirse en otras funciones o procedimientos así
como en el interior de sentencias SQL como SELECT, UPDATE,
DELETE e INSERT.
PROCEDIMIENTOS Y FUNCIONES ALMACENADOS

▪ Esquema general de una rutina almacenada:


SINTAXIS Y EJEMPLOS DE RUTINAS ALMACENADAS
▪ Para construir nuestros propios procedimientos y funciones (así como
otros objetos como triggers y vistas) necesitaremos un editor como
notepad++ u otro de nuestra preferencia y nuestros programas servidor y
cliente de MySQL. También podemos crearlos directamente desde la
consola cliente mysql o usando la GUI (Graphical User Interface) de
MySQL.
SINTAXIS Y EJEMPLOS DE RUTINAS ALMACENADAS
▪ La sintaxis general para la creación de un procedimiento es:
es el nombre de la rutina almacenada
son los parámetros que en general se caracterizan
por un tipo y un nombre. El tipo puede ser de
entrada (IN), salida (OUT) o entrada/salida (INOUT).

es el cuerpo de la rutina
formado generalmente por
sentencias SQL. En caso de
haber más de una deben ir
dentro de un bloque
delimitado por sentencias
BEGIN y END
Ejemplo
Línea 1. La palabra clave DELIMITER indica el carácter de
comienzo y fin del procedimiento. Típicamente sería un ;
pero dado que necesitamos un ; para cada sentencia SQL
dentro del procedimiento es conveniente usar otro carácter
(normalmente $$ o //).
Línea 2. Eliminamos el procedimiento si es que existe. Esto evita
errores cuando queremos modificar un procedimiento
existente.
Línea 3. Indica el comienzo de la definición de un procedimiento
donde debe aparecer el nombre seguido por paréntesis
entre los que pondremos los prámetros en caso de
haberlos. En este caso precedemos al nombre con la base
de datos test a la que pertenecerá el procedimiento.
Línea 4. Begin indica el comienzo de las sentencias sql que
componen el cuerpo del procedimiento.
Línea 5. Conjunto de sentencias SQL, en este caso un select que
imprime la cadena por pantalla.
Línea 6. Fin de la definición del procedimiento seguido de un
doble $ indicando que ya hemos terminado.
Aparece Query OK,
cuando se compila
sin errores de
sintaxis.
Creación en la consola del procedimiento Hola_mundo.
Se creó en la base de datos ejemplo.
Una vez creado estamos en condiciones de ejecutarlo llamándolo con el
comando CALL:
DECLARACIÓN DE VARIABLES
▪ Para declarar una variable dentro del bloque de instrucciones
se usa la palabra DECLARE:

DECLARE [NOMBRE_VARIABLE] [TIPO_DATO]

SET: permite asignar valores a


las variables usando el
operador de igualdad

En el ejemplo se recibe una variable entera de entrada llamada parámetro1. A


continuación se declaran las variables variable1 y variable2 de tipo entero y se
evalúa el valor del parámetro: en caso de que sea 17 se asigna su
valor al a variable v1 y sino la variable v2 se le asigna el valor 30.
DECLARACIÓN DE PARÁMETROS

Tipos de parámetros:

IN: Es el tipo por defecto y sirve para incluir parámetros de


entrada que usará el procedimiento.

OUT: Parámetros de salida. El procedimiento puede asignar


valores a dichos parámetros que son devueltos en la
llamada.

INOUT: Permite pasar valores al proa que serán modificados y


devueltos en la llamada.
condicional
DECLARACIÓN DE PARÁMETROS y CONDICIONAL

Ejemplo:
Hacer un procedimiento que tome como parámetro de
entrada un número entero y guarde en una variable si ese
número es par o impar.
DELIMITER $$
DROP PROCEDURE IF EXISTS `ejercicios`.`suma`$$
CREATE PROCEDURE `ejercicios`.`suma`(in num integer, out
resultado varchar(10))
BEGIN
if (num %2 = 0) then
set resultado ="par";
else
set resultado ="impar";
end if;
END$$
DELIMITER ;
DECLARACIÓN DE PARÁMETROS y CONDICIONAL

Una vez compilado el procedimiento, podemos llamarlo:

Valor del parámetro de entrada Parámetro de salida que se deja indicado

Luego de llamar el procedimiento


con el SELECT visualizamos el
contenido de la variable
RESULTADO
Instrucciones repetitivas - loops
Instrucciones repetitivas - loops
Ejemplo:
Inserta números consecutivos desde el 0 hasta el 5 en la tabla t
Instrucciones repetitivas - loops
Ejemplo:
Inserta números consecutivos desde el 0 hasta el 5 en la tabla t
Instrucciones repetitivas - Repeat

Ejemplo:
Procedimiento almacenado que
toma como parámetro de entrada
un número entero (N) y calcula la
suma de los N primeros números
naturales. Muestra el resultado
por pantalla.
Instrucciones repetitivas -While

Ejemplo: el procedimiento muestra por pantalla los números impares que hay en
el rango del 1 al 10.

También podría gustarte