0 valutazioniIl 0% ha trovato utile questo documento (0 voti)
67 visualizzazioni3 pagine
Este documento explica cómo crear funciones definidas por el usuario (UDF) en MySQL. Detalla la sintaxis básica para definir una función, incluidos parámetros, tipo de retorno, variables y sentencias. Luego proporciona dos ejemplos de funciones: una para calcular la suma de los primeros N números y otra para determinar si un estudiante es mayor de edad según su CI. Finalmente, muestra cómo ejecutar las funciones y borrarlas.
Este documento explica cómo crear funciones definidas por el usuario (UDF) en MySQL. Detalla la sintaxis básica para definir una función, incluidos parámetros, tipo de retorno, variables y sentencias. Luego proporciona dos ejemplos de funciones: una para calcular la suma de los primeros N números y otra para determinar si un estudiante es mayor de edad según su CI. Finalmente, muestra cómo ejecutar las funciones y borrarlas.
Este documento explica cómo crear funciones definidas por el usuario (UDF) en MySQL. Detalla la sintaxis básica para definir una función, incluidos parámetros, tipo de retorno, variables y sentencias. Luego proporciona dos ejemplos de funciones: una para calcular la suma de los primeros N números y otra para determinar si un estudiante es mayor de edad según su CI. Finalmente, muestra cómo ejecutar las funciones y borrarlas.
Universidad Autnoma Toms Fras Ingeniera Informtica
Laboratorio de Base de Datos INF-553
Docente.. Ing. Orlando Choque Ayma Auxiliar. Univ. Reynaldo Henry Ruiz Cruz PROGRAMACIN MySQL Funciones: MySQL tiene una multitud de funciones tales como CONCAT( ), LENGTH( ), etc. que podemos usar al momento de trabajar en este sistema de gestin de base de datos, tambin podemos crear nuestras propias funciones (funciones definidas por el usuario (UDF)), utilizando sentencias repetitivas, selectivas, etc.
Sintaxis bsica:
CREATE FUNCTI ON nombre_funcion(parametro1 tipo_parametro,, parametroN tipo_parametroN) RETURNS tipo_retorno //tipo del valor que retornar la funcin [DETERMINISTIC] BEGI N //inicio del cuerpo de la funcin DECLARE variable1 tipo_variable1; //declaracin de variables DECLARE variableN tipo_variableN; ...
RETURN valor_o_variable_de_retorno; //valor que retorna la funcin END; //fin del cuerpo de la funcin
Asignacin:
SET variable=valor_variable; //asignacin
Sentencias repetitivas:
WHI LE condicion DO //sentencia repetitiva WHILE sentencias; END WHI LE;
Sentencias selectivas:
I F condicion THEN //sentencia selectiva IF sentencias; END I F;
EJEMPLOS: 1.- Realizar una funcin para calcular la suma de los N primeros nmeros. mysql> DELIMITER $ mysql> CREATE FUNCTION sumar(n int) returns int -> BEGIN -> DECLARE contador, s int; -> SET contador=0; -> SET s=0; -> WHILE contador < n DO -> SET contador=contador+1; -> SET s=s+contador; -> END WHILE; -> RETURN s; -> END; -> $ Query OK, 0 rows affected (0.00 sec) NOTA: Antes de empezar a realizar nuestras funciones debemos cambiar el delimitador que MySQL trae por defecto ( ; ), eso lo realizamos de la siguiente manera: DELIMITER smbolo Ej: delimiter $ //cambiamos el punto y coma ( ; ) por el smbolo $ (puede ser cualquier smbolo) Con esto cambiamos temporalmente el delimitador de MySQL, ahora podemos empezar a crear nuestras funciones.
Universidad Autnoma Toms Fras Ingeniera Informtica Laboratorio de Base de Datos INF-553 Docente.. Ing. Orlando Choque Ayma Auxiliar. Univ. Reynaldo Henry Ruiz Cruz Una vez creada la funcin la ejecutamos, para eso realizamos lo siguiente:
SELECT nombre_de_la_funcin ();
Para el ejemplo anterior seria: mysql> select sumar(5)$ +----------+ | sumar(5) | +----------+ | 15 | +----------+ 1 row in set (0.00 sec)
mysql> select sumar(4)$ +----------+ | sumar(4) | +----------+ | 10 | +----------+ 1 row in set (0.02 sec)
Una vez hecho esto podemos volver a cambiar nuestro delimitador a ( ; ).
mysql> DELIMITER $
2.- Realizar una funcin para determinar si un estudiante es mayor de edad o no, dado el CI del estudiante, si la edad es mayor a 17 es mayor de edad caso contrario no.
Para realizar esta funcin requerimos: Crear tabla estudiante(ci, nombre, edad):
mysql> select * from estudiante$ +----+--------+------+ | ci | nombre | edad | +----+--------+------+ | 10 | juan | 25 | | 11 | pedro | 17 | | 12 | ana | 18 | | 13 | luis | 20 | +----+--------+------+ 4 rows in set (0.05 sec) Universidad Autnoma Toms Fras Ingeniera Informtica Laboratorio de Base de Datos INF-553 Docente.. Ing. Orlando Choque Ayma Auxiliar. Univ. Reynaldo Henry Ruiz Cruz La funcin seria de la siguiente manera: mysql> delimiter $ mysql> create function mayor_menor(bci numeric) returns varchar(50) -> begin -> declare ed int; -> select edad into ed from estudiante where ci=bci; -> if ed >= 18 then -> return "ES MAYOR DE EDAD"; -> else -> return "NO ES MAYOR DE EDAD"; -> end if; -> end; -> $ Query OK, 0 rows affected (0.00 sec)
Para ejecutar la funcin con los datos anteriormente introducidos: mysql> select * from estudiante$ +----+--------+------+ | ci | nombre | edad | +----+--------+------+ | 10 | juan | 25 | | 11 | pedro | 17 | | 12 | ana | 18 | | 13 | luis | 20 | +----+--------+------+ 4 rows in set (0.05 sec)
mysql> select mayor_menor(10)$ +------------------+ | mayor_menor(10) | +------------------+ | ES MAYOR DE EDAD | +------------------+ 1 row in set (0.00 sec)
mysql> select mayor_menor(11)$ +---------------------+ | mayor_menor(11) | +---------------------+ | NO ES MAYOR DE EDAD | +---------------------+ 1 row in set (0.00 sec) ... mysql> delimiter ;
Si por alguna razn tendramos que borrar una de nuestras funciones se hara de la siguiente manera: DROP FUNCTION nombre_de_la_funcin;
Si queremos borrar las funciones que creamos anteriormente seria: mysql> DROP FUNCTION sumar; Query OK, 0 rows affected (0.00 sec)
mysql> DROP FUNCTION mayor_menor; Query OK, 0 rows affected (0.00 sec)