Trabajo Procedure

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

Trabajo Procedimientos Almacenados

Para algunos de los casos tenga presente el siguiente Modelo Entidad – Relación con su Base de
datos entregada adjunta a la actividad:

Se pide que en el SGBD MySQL realice la creación de sus tablas, atributos e interrelaciones y
registre para cada tabla máximo 7 tuplas.

Se pide a continuación resolver lo siguiente:

Procedimientos sin sentencias SQL

1. Escriba un procedimiento que no tenga ningún parámetro de entrada ni de salida y que


muestre el texto ¡Hola mundo!
2. Escriba un procedimiento que reciba un número real de entrada y muestre un mensaje
indicando si el número es positivo, negativo o cero.

3. Modifique el procedimiento diseñado en el ejercicio anterior para que tenga un parámetro


de entrada, con el valor un número real, y un parámetro de salida, con una cadena de
caracteres indicando si el número es positivo, negativo o cero.

4. Escriba un procedimiento que reciba un número real de entrada, que representa el valor
de la nota de un alumno, y muestre un mensaje indicando qué nota ha obtenido teniendo
en cuenta las siguientes condiciones:

 [0,5) = Insuficiente
 [5,6) = Aprobado
 [6, 7) = Bien
 [7, 9) = Notable
 [9, 10] = Sobresaliente
 En cualquier otro caso la nota no será válida.

5. Modifique el procedimiento diseñado en el ejercicio anterior para que tenga un parámetro


de entrada, con el valor de la nota en formato numérico y un parámetro de salida, con una
cadena de texto indicando la nota correspondiente.

6. Resuelva el procedimiento diseñado en el ejercicio anterior haciendo uso de la estructura


de control CASE.

7. Escriba un procedimiento que reciba como parámetro de entrada un valor numérico que
represente un día de la semana y que devuelva una cadena de caracteres con el nombre
del día de la semana correspondiente. Por ejemplo, para el valor de entrada 1 debería
devolver la cadena lunes.

Procedimientos con sentencias SQL

1. Escriba un procedimiento que reciba el nombre de un país como parámetro de entrada y


realice una consulta sobre la tabla cliente para obtener todos los clientes que existen en la
tabla de ese país.

2. Escriba un procedimiento que reciba como parámetro de entrada una forma de pago, que
será una cadena de caracteres (Ejemplo: PayPal, Transferencia, etc.). Y devuelva como
salida el pago de máximo valor realizado para esa forma de pago. Deberá hacer uso de la
tabla pago de la base de datos jardinería.

3. Escriba un procedimiento que reciba como parámetro de entrada una forma de pago, que
será una cadena de caracteres (Ejemplo: PayPal, Transferencia, etc). Y devuelva como
salida los siguientes valores teniendo en cuenta la forma de pago seleccionada como
parámetro de entrada:

 el pago de máximo valor,


 el pago de mínimo valor,
 el valor medio de los pagos realizados,
 la suma de todos los pagos,
 el número de pagos realizados para esa forma de pago.

Deberá hacer uso de la tabla pago de la base de datos jardinería.

4. Crear una base de datos llamada “procedimientos01” que contenga una tabla llamada
operaciones. La tabla operaciones debe tener dos columnas de tipo INT UNSIGNED,
una columna llamada “numero” y otra llamada “cuadrado”.

Una vez creada la base de datos y la tabla deberá crear un


procedimiento llamado calcular_cuadrados con las siguientes características. El
procedimiento recibe un parámetro de entrada llamado tope de tipo INT UNSIGNED y
calculará el valor de los cuadrados de los primeros números naturales hasta el valor
introducido como parámetro. El valor del número y de sus cuadrados deberán ser
almacenados en la tabla cuadrados que hemos creado previamente.

Tenga en cuenta que el procedimiento deberá eliminar el contenido actual de la tabla


antes de insertar los nuevos valores de los cuadrados que va a calcular.

Utilice un bucle WHILE para resolver el procedimiento.

5. Utilice un bucle REPEAT para resolver el procedimiento del ejercicio anterior.

6. Utilice un bucle LOOP para resolver el procedimiento del ejercicio anterior.

7. Crear una base de datos llamada “procedimientos02” que contenga una tabla llamada
ejercicio. La tabla debe tener una única columna llamada “numero” y el tipo de dato de
esta columna debe ser INT UNSIGNED.

Una vez creada la base de datos y la tabla deberá crear un


procedimiento llamado calcular_números con las siguientes características. El
procedimiento recibe un parámetro de entrada llamado valor_inicial de tipo INT
UNSIGNED y deberá almacenar en la tabla ejercicio toda la secuencia de números desde
el valor inicial pasado como entrada hasta el 1.

Tenga en cuenta que el procedimiento deberá eliminar el contenido actual de las tablas
antes de insertar los nuevos valores.
Utilice un bucle WHILE para resolver el procedimiento.

8. Utilice un bucle REPEAT para resolver el procedimiento del ejercicio anterior.

9. Utilice un bucle LOOP para resolver el procedimiento del ejercicio anterior.

10. Crea una base de datos llamada procedimientos que contenga una tabla llamada pares y


otra tabla llamada impares. Las dos tablas deben tener única columna llamada número y
el tipo de dato de esta columna debe ser INT UNSIGNED.

Una vez creada la base de datos y las tablas deberá crear un


procedimiento llamado calcular_pares_impares con las siguientes características. El
procedimiento recibe un parámetro de entrada llamado tope de tipo INT UNSIGNED y
deberá almacenar en la tabla pares aquellos números pares que existan entre el número 1
el valor introducido como parámetro. Habrá que realizar la misma operación para
almacenar los números impares en la tabla impares.

Tenga en cuenta que el procedimiento deberá eliminar el contenido actual de las tablas
antes de insertar los nuevos valores.

Utilice un bucle WHILE para resolver el procedimiento.

11. Utilice un bucle REPEAT para resolver el procedimiento del ejercicio anterior.

12. Utilice un bucle LOOP para resolver el procedimiento del ejercicio anterior.

Transacciones con procedimientos almacenados

1. Crea una base de datos llamada cine que contenga dos tablas con las siguientes columnas.

Tabla cuentas:

 id_cuenta: entero sin signo (clave primaria).


 saldo: real sin signo.

Tabla entradas:

 id_butaca: entero sin signo (clave primaria).


 nif: cadena de 9 caracteres.

Una vez creada la base de datos y las tablas deberá crear un


procedimiento llamado comprar_entrada con las siguientes características. El
procedimiento recibe 3 parámetros de entrada (nif, id_cuenta, id_butaca) y devolverá
como salida un parámetro llamado error que tendrá un valor igual a 0 si la compra de la
entrada se ha podido realizar con éxito y un valor igual a 1 en caso contrario.

El procedimiento de compra realiza los siguientes pasos:

 Inicia una transacción.


 Actualiza la columna saldo de la tabla cuentas cobrando 5 euros a la cuenta con
el id_cuenta adecuado.
 Inserta una una fila en la tabla entradas indicando la butaca (id_butaca) que acaba
de comprar el usuario (nif).
 Comprueba si ha ocurrido algún error en las operaciones anteriores. Si no ocurre
ningún error entonces aplica un COMMIT a la transacción y si ha ocurrido algún
error aplica un ROLLBACK.

Deberá manejar los siguientes errores que puedan ocurrir durante el proceso.

 ERROR 1264 (Out of range value)


 ERROR 1062 (Duplicate entry for PRIMARY KEY)

2. ¿Qué ocurre cuando intentamos comprar una entrada y le pasamos como parámetro un
número de cuenta que no existe en la tabla cuentas? ¿Ocurre algún error o podemos
comprar la entrada? En caso de que exista algún error, ¿cómo podríamos resolverlo?

Funciones con sentencias SQL

1. Escribe una función para la base de datos tienda que devuelva el número total de


productos que hay en la tabla productos.

2. Escribe una función para la base de datos tienda que devuelva el valor medio del precio
de los productos de un determinado fabricante que se recibirá como parámetro de entrada.
El parámetro de entrada será el nombre del fabricante.

3. Escribe una función para la base de datos tienda que devuelva el valor máximo del precio
de los productos de un determinado fabricante que se recibirá como parámetro de entrada.
El parámetro de entrada será el nombre del fabricante.

4. Escribe una función para la base de datos tienda que devuelva el valor mínimo del precio
de los productos de un determinado fabricante que se recibirá como parámetro de entrada.
El parámetro de entrada será el nombre del fabricante.

Nota: Deberá entregar Script SQL con creación de bases datos, estructura de tablas,
atributos, interrelaciones, Script SQL con los procedimientos y funciones implementados,
archivo Word con evidencia de pantallazos con creación de BD, Tablas, cargue de Datos,
cargue de Procedimiento y/o Función con evidencia de implementación.

También podría gustarte