procedimientos y funciones

18
1 Rutinas almacenadas Administración de Sistemas Gestores de Bases de Datos

Upload: ana-luisa-ballinas-hernandez

Post on 12-Apr-2017

649 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Procedimientos y funciones

1

Rutinas almacenadas

Administración de Sistemas Gestores de Bases de Datos

Page 2: Procedimientos y funciones

Índice

Rutinas almacenadas (SR) y Lenguaje de Programas Almacenados (SPL)

Inspeccionando las rutinas almacenadas

2

Page 3: Procedimientos y funciones

Rutinas Almacenadas

Cuando múltiples aplicaciones cliente se escriben en distintos lenguajes o funcionan en distintas plataformas, pero necesitan realizar la misma operación en la base de datos.

Cuando la seguridad es muy importante. Los bancos, por ejemplo, usan procedimientos almacenados para todas las oparaciones comunes. Esto proporciona un entorno seguro y consistente, y los procedimientos pueden asegurar que cada operación se loguea apropiadamente. En tal entorno, las aplicaciones y los usuarios no obtendrían ningún acceso directo a las tablas de la base de datos, sólo pueden ejectuar algunos procedimientos almacenados.

3

Page 4: Procedimientos y funciones

Rutinas Almacenadas

Conjunto de sentencias disponibles para las aplicaciones que acceden a un RDBMS.

Almacenados en el Gestor de la Bases de Datos. En MySQL , se escriben usando SPL basado en un

subconjunto del estandar Módulo de Almacenamiento Persistente del ANSI SQL:2003 (PSM).

4

Page 5: Procedimientos y funciones

Rutinas Almacenadas

Tiene un nombre Puede tener una lista de parámetros Puede contener un conjunto de sentencias SQL.

Se crean utilizando el comando CREATE.

5

Page 6: Procedimientos y funciones

Rutinas Almacenadas

Por defecto, se crea en la base de datos actual. Si queremos crearla en una BD distinta, deberemos hacer preceder el nombre de la BD de destino.

El delimitador de línea de comando por defecto (;) necesita ser cambiado a la hora de codificar rutinas almacenadas.

6

Page 7: Procedimientos y funciones

Rutinas Almacenadas

DELIMITER // CREATE PROCEDURE `DBName.AddData`(err VARCHAR(255)) BEGIN ………… END; // DELIMITER ;

7

Page 8: Procedimientos y funciones

Rutinas Almacenadas

Cuando se invocan, se realiza un USE DBName implícito (y se deshace cuando la rutina termina). La sentencia USE no está permitida dentro de las SRs.

Cuando se borra una DB, todas las SR almacenadas en él, se borran también.

MySQL soporta 3 tipos de rutinas:1. Procedimientos Almacenados (SP),2. Funciones Almacenadas (SF), 3. Triggers o Disparadores.

8

Page 9: Procedimientos y funciones

Procedimientos Almacenados

Son llamados utilizando el comando explícito CALL. No devuelven un valor de manera explícita.

CREATE PROCEDURE `DBName.AddData`(err VARCHAR(255))

…..CALL AddData(“…”);

9

Page 10: Procedimientos y funciones

Procedimientos Almacenados

Conjunto de sentencias SQL que pueden ser almacenados en el servidor.

Una vez creados, los clientes pueden referirse al procedimiento almacenado en lugar de ejecutar las sentencias individuales.

Ninguno de los 3 tipos de parámetros son requeridos en un SP.

10

Page 11: Procedimientos y funciones

Procedimientos Almacenados

Aunque no tenga parámetros, hay que finalizar la definición de la cabecera con ().

No obstante, un SP sin parámetros, puede ser invocado sin utilizar los paréntesis.

Se le invoca utilizando el comando CALL. Un SP puede mostrar resultados o devolver los

resultados en las variables OUTPUT especificadas.

11

Page 12: Procedimientos y funciones

Tipos de parámetros

IN.Es el parámetro por defecto. Puede cambiar su valor

dentro de la rutina, pero, permanece inalterable su valor externo.

OUT.En el momento de la llamada, su valor es NULL, pero,

puede ser modificado dentro de la rutina y dicho valor estará disponible en el exterior de la rutina.

INOUT.Se comporta como una combinación de los 2

anteriores. Se le puede asignar un valor en la llamada, que puede ser modificado en el interior y estar disponible en el exterior.

12

Page 13: Procedimientos y funciones

Procedimientos Almacenados

CREATE PROCEDURE how_is_it (IN x INT)BEGIN

IF (x > 5) THENSELECT CONCAT(x, " is higher") as answer;

ELSESELECT CONCAT(x, " is lower") as answer;

END IF;END

13

Page 14: Procedimientos y funciones

Procedimientos Almacenados

CALL how_is_it(6);+-------------+| answer |+-------------+| 6 is higher |+-------------+

CALL how_is_it(2);+-------------+| answer |+-------------+| 2 is lower |+-------------+

14

Page 15: Procedimientos y funciones

Funciones Almacenadas

Pueden ser usadas como funciones definidas por el usuario.

Se invocan utilizando su nombre. Puede devolver un valor, que puede ser usado en

otra sentencia SQL, de la misma forma que se invocan a otras funciones como REPLACE, CONCAT(), etc.

CREATE FUNCTION AddData()RETURNS ……..SELECT AddData();

15

Page 16: Procedimientos y funciones

Funciones Almacenadas

Una SF no puede mostrar resultados. Una SF se crea utilizando el comando

CREATE . Los parámetros de entrada (IN) no son

requeridos en una SF. Una SF debe tener una sentencia

RETURN y sólo puede devolver un valor.

16

Page 17: Procedimientos y funciones

Funciones Almacenadas

Una SF es llamada simplemente con su nombre (sin usar CALL).

El nombre de una SF debe ser diferente a la de cualquier función SQL.

Page 18: Procedimientos y funciones

Funciones Almacenadas

CREATE FUNCTION is_bigger (x INT)RETURNS CHAR(3)BEGIN IF (x > 5) THEN RETURN 'YES'; ELSE RETURN 'NO'; END IF;END

18