Ahora bien, ¿Qué son en realidad los procedimientos almacenados?

¿ Y como creamos un procedimiento?
Para crear un procedimiento, MySQL nos ofrece la directiva CREATE PROCEDURE. Al crearlo éste es ligado o relacionado con la base de datos que se está usando, tal como cuando creamos una tabla, por ejemplo.
Para llamar a un procedimiento lo hacemos mediante la instrucción CALL. Desde un procedimiento podemos invocar a su vez a otros procedimientos o funciones.
Observa algunos ejemplos.
MySQL sigue la sintaxis SQL:2003 para procedimientos almacenados, que también usa IBM DB2.
En resumen, la sintaxis de un procedimiento almacenado es la siguiente:
view plainprint?
CREATE PROCEDURE nombre (parámetro)
[características] definición
Puede haber más de un parámetro (se separan con comas) o puede no haber ninguno (en este caso deben seguir presentes los paréntesis, aunque no haya nada dentro).
os parámetros tienen la siguiente estructura: modo nombre tipo
Donde:
modo: es opcional y puede ser IN (el valor por defecto, son los parámetros que el procedimiento recibirá), OUT (son los parámetros que el procedimiento podrá modificar) INOUT (mezcla de los dos anteriores).
nombre: es el nombre del parámetro.
tipo: es cualquier tipo de dato de los provistos por MySQL.
Dentro de características es posible incluir comentarios o definir si el procedimiento obtendrá los mismos resultados ante entradas iguales, entre otras cosas.
definición: es el cuerpo del procedimiento y está compuesto por el procedimiento en sí: aquí se define qué hace, cómo lo hace y bajo qué circunstancias lo hace.
Su sintaxis es:
view plainprint?
CREATE FUNCTION nombre (parámetro)
RETURNS tipo
[características] definición
Para llamar a una función lo hacemos simplemente invocando su nombre, como se hace en muchos lenguajes de programación.
Desde una función podemos invocar a su vez a otras funciones o procedimientos.
view plainprint?
mysql> delimiter //
mysql> CREATE PROCEDURE procedimiento (IN cod INT)
-> BEGIN
-> SELECT * FROM tabla WHERE cod_t = cod;
-> END
-> //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
mysql> CALL procedimento(4);
Otro ejemplo:
view plainprint?
CREATE PROCEDURE procedimiento2 (IN a INTEGER)
BEGIN
DECLARE variable CHAR(20);
IF a > 10 THEN
SET variable = ‘mayor a 10’;
ELSE
SET variable = ‘menor o igual a 10’;
END IF;
INSERT INTO tabla VALUES (variable);
END
Observemos ahora un ejemplo de funciones:
view plainprint?
mysql> delimiter //
mysql> CREATE FUNCTION cuadrado (s SMALLINT) RETURNS SMALLINT
-> RETURN s*s;
-> //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
mysql> SELECT cuadrado(2);
En definitiva hemos dado un recorrido por el mundo de la programación de procedimientos almacenados en MySQL. Es importante que se trata de un mundo que está en pleno desarrollo y que promete evolucionar.
JessyGerman :)
No hay comentarios:
Publicar un comentario