Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bases de datos
JCCA
[Unidad 8
Actividades]
Sumario
Actividad 1. Procedimientos...............................................................................................................4
Actividad 2. Funciones........................................................................................................................5
Actividad 3. Estructuras de control.....................................................................................................5
Actividad 4. Manejo de errores en MySQL.........................................................................................7
Actividad 5. Transacciones con procedimientos almacenados...........................................................8
Actividad 6. Triggers........................................................................................................................... 8
2
Unidad 8: Actividades Bases de datos
Nombre de las bases de datos: pZ_ud8_aX (donde Z es el número de puesto y X el número de actividad solucionada).
Ejemplo: Rosa está en el puesto 61 y crea la base de datos de la actividad 2, entonces el nombre de la base de datos
será: p61_ud8_a2
Renombrar el archivo suministrado por el profesor, realizar los cambios necesarios en el código y ejecutar el spript (en
la actividad que corresponda)
3
Unidad 8: Actividades Bases de datos
Actividad 1. Procedimientos
6. Crea un procedimiento de nombre add_pista que permita añadir una nueva pista con los
datos pasados como parámetro. Muestra «1» si se ha añadido con éxito, «0» en caso
contrario (utiliza la función ROW_COUNT() )
8. Crea un procedimiento de nombre borrar_pista que borre una pista por su nombre. Borra
la pista que hayas añadido en el ejercicio 6. Muestra «1» si se ha borrado con éxito, «0» en
caso contrario.
4
Unidad 8: Actividades Bases de datos
Actividad 2. Funciones
4. Crea una función de nombre pesoMedio_animales que devuelva el peso medio de los
animales.
5
Unidad 8: Actividades Bases de datos
Si peso<=30: 'LIGERO'
Si peso>=30 y <50: 'SEMI-LIGERO'
Si peso >=50 y <=100: 'MEDIO'
Si peso >100: 'PESADO'
Llama a la función para mostrar el peso de cada uno de los animales del CIRCO
Si tipo = León
anhos < 2: 'JOVEN'
anhos >=2 y <=5: 'MADURO'
anhos > 5: 'VIEJO'
5. Crea un procedimiento de nombre artistas_yJefes que muestre a cada artista (nif) con su
jefe (apellidos,nombre). En caso de que no tenga jefe deberá mostrar la cadena SIN JEFE.
Este procedimiento se podría realizar sin hacer uso de cursores, pero para practicar, vas a
crear un cursor que recorra todos los artistas y por cada artista que muestre los datos de su
jefe.
6
Unidad 8: Actividades Bases de datos
El resultado debe aparecer como una única consulta (no valen varios SELECT).
Para ello haz uso de una tabla temporal que vaya guardando los datos (el nombre completo
y el suplemento de la ganancia) y posteriormente haz un SELECT de dicha tabla. Para crear
una tabla temporal haz uso de la sentencia: CREATE TEMPORARY TABLE T_TEMPORAL
(nombre_completo varchar(150), suplemento decimal(6,2)) ; . Dicha orden debe ir
después de la orden DECLARE CONTINUE HANDLER del cursor.
Recuerda borrar la tabla temporal al salir del procedimiento: DROP TEMPORARY TABLE
T_TEMPORAL;
Como el procedimiento sólo va a tener una orden INSERT, no hace falta hacer que salga del
mismo al producirse la excepción.
7
Unidad 8: Actividades Bases de datos
Debe comprobar si el artista existe. En caso de que no existiera, debe mostrar el valor -1.
En caso de que exista y todo el proceso de borrado hubiese sido correcto, debe mostrar el
valor 0.
Añadir una transacción y controlar los posibles errores.
2. Crea una función de nombre artistas_modificarJefe, al que se le pase un nif y asigne como
jefe dicho nif a todos los artistas que no tengan jefe y que hayan trabajado en al menos dos
atracciones.
Emplea un cursor para buscar los artistas que cumplan las condiciones.
Si todo va bien debe devolver 0.
En caso de que el nif enviado no exista debe devolver el valor -1.
En cualquier otro caso de error debe devolver -2.
Añadir una transacción y controlar los posibles errores
Actividad 6. Triggers
• Añade dos filas con los valores para tipo/valor: pistas/0 animales/0.
• Ejecuta la orden SQL que actualice la tabla contador con los datos actuales de las
tablas.
• Haz que cada vez que haya alguna operación que modifique (alta/baja) el número
de pistas o de animales, se actualice el número total de los mismos.