Práctica IV las reservas

Vamos a hacer una práctica similar a un modelo E/R que hicimos antes de navidad, pero aplicando ciertos cambios para que el modelo quede más real. El modelo relacional quedaría así:

Las tablas tiene almacenados los siguientes datos:

Clientes

Hoteles

Habitaciones

Reservas

Ejercicios

  • ¿Como sería el modelo E/R ?
  • Diseña el modelo relacional en mysql
  • Inserta todos los datos
  • Puedes descargar la base de datos aquí:reservas.sql
  • Realiza todas estas consultas (puedes usar vistas para simplificar algunas consultas)
    • Lista las reservas junto al nombre y núemero de cada cliente
    • Muestra un listado de clientes organizado (agrupado) por provincias y localidad
    • Saca los clientes estrella, aquellos que tienen más de dos reservas (figuran dos veces en la tabla reservas)
    • Sacar por cada cliente las habitaciones (cantidades) que ha reservado
    • Introduce dos nuevos clientes
    • Haz una reserva para cada nuevo cliente con fecha 3 de marzo (llegada y salida), el cliente primero reserva una sola habitación y el segundo dos habitaciones. Ambos reservan habitaciones muy baratas, pero uno la reserva simple y otro doble.
    • Ahora el cliente segundo cambia la fecha de llegada a 5 de marzo y dice que se va el 7 de marzo.
    • EL cliente primero decide anular la reserva.
    • Calcula el número de días que un cliente está en el hotel.
    • Calcula el precio de cada reserva (dependerá del número de días)
    • ¿Que tipo de habitación es el más usado?

PROCEDIMIENTOS

Los procedimientos son una forma de almacenar consultas en MYSQL. Una forma simple de hacer uno sería (Usando la BD clientes):

CREATE PROCEDURE simple()

BEGIN

SELECT * from PEDIDOS;

END

//

Si probaís esto tal cual en MYSQL no funcionará, el problema está en el delimitador. las “//” no están puestas por error. Cuando creamos el procedimiento tenemos que poner el ‘;’ donde corresponde, pero claro entonces el compilador se piensa que ya hemos acabado y se sale. Para solucionar esto usaremos el comando delimiter de esta forma:

  • Antes de crear el procedimiento pondremos: delimiter //
  • Después de crear pondremos delimeter ;
  • Para llamar al procedimiento pondremos CALL simple();
  • El procedimiento queda guardado en el servidor.
  • Dentro de un procedimiento se pueden poner infinitas consultas.
  • Por supuesto se ponen poner INSERT, CREATE, DROP….

La parte más rica de los procedimiento es el uso de los parámetros, es lo que se pone entre los dos “()”, pero en clase todavía no hemos dado el uso de parámetros y por eso no los vamos a usar.

3 Responses to “ Práctica IV las reservas ”

  1. Alberto dice:

    HOLA, estoy recordando un poco mysql haciendo unos ejercicios y me ha surgido una duda. En la practica 4 la de la tabla reservas hay un ejercicio en el que te piden que averigües el numero de días que un cliente esta en el hotel. Esta claro que si le sumas la fecha_ini a la fecha_fin saldría pero he mirado por ahí como hacerlo y meten funciones. no se como hacerlo en mysql.no se si me estoy comiendo la cabeza y lo que se pide es mucho mas sencillo.

  2. Alberto dice:

    Me refería restar las fechas que me he equivocado en el comentario.

Deja un comentario

Disculpa, debes iniciar sesión para escribir un comentario.