Base de Datos Compañía de autobuses
1. Debes descargar el fichero excel de la compañía de autobuses.OK
2. Desde SQLDeveloper importa las tablas excel a nuevas tablas de Oracle.
OK
3. Crea la claves primarias y extranjeras en la nuevas tablas.
alter table AUTOBUSES --alterar una tabla
add constraint pk_matricula -- añadir una restriccion
primary key (matrícula); -- inicarle cual o cuales van a ser la clave primaria.
alter table clientes_bus --alterar una tabla
add constraint pk_clientes -- añadir una restriccion
primary key (códigocliente); -- inicarle cual o cuales van a ser la clave primaria.
alter table reservas --alterar una tabla
add constraint pk_reservas-- añadir una restriccion
primary key (códigoreserva); -- inicarle cual o cuales van a ser la clave primaria.
alter table trayectos --alterar una tabla
add constraint pk_trayecto -- añadir una restriccion
primary key (códigotrayecto); -- inicarle cual o cuales van a ser la clave primaria.
alter table trayectos --crear el enlace entre las dos tablas, modificamos customer
add constraint FK_matricula_tray-- nombre de la restriccion
foreign key (matricula) -- restriccion clave
references autobuses(matrícula); --vincular al campo customer_type y el campo type_id
-------
alter table reservas --crear el enlace entre las dos tablas, modificamos customer
add constraint FK_cliente_bus_id-- nombre de la restriccion
foreign key (codigocliente) -- restriccion clave
references clientes_bus(códigocliente); --vincular al campo customer_type y el campo type_id
alter table reservas --crear el enlace entre las dos tablas, modificamos customer
add constraint FK_trayecto_id-- nombre de la restriccion
foreign key (codigotrayecto) -- restriccion clave
references trayectos(códigotrayecto); --vincular al campo customer_type y el campo type_id
Puede que al importar las tablas de un Excel existan campos que no conicidan a la hora de hacer las relaciones con las claves extranjeras. En nuestro caso nos ha pasado con al relacionar la trabla reservas con la tabla clientes. Nos daba problemas ya que existían algún registro en la columna
reserva.codigocliente que no exisistia en la columna clientes_bus.codigocliente. Para comprar si existen datos diferentes:
select * from reservas where
codigocliente not in (select códigocliente from clientes_bus);
Si existen datos diferentes podemos o midificarlos o borrar los registros.
4. Crea las siguientes consultas, son tan fáciles...
Mostrar todos los autobuses cuya capacidad supere los 59 asientos.
select * from autobuses where autobuses.capacidad >= 59;
Mostrar los nombres y teléfonos de los clientes que hayan reservado algo.
select distinct(clientes_bus.códigoclientes) nombre, telefono from cleintes_bus
inner join reservas
on clinetes_bus.códigocliente=reservas.codigocliente;
Mostrar los trayectos de la mañana, es decir que salgan antes de las 13:00
select * from trayectos where hora < '13:00';
Mostrar el número total de trayectos que tiene la compañía
select count(*) from trayectos;
Mostrar el número total de clientes que tiene la compañía
select count(*) as "Total Clientes" from clientes;
Mostrar el número total de trayectos que hace el autobús con matrícula 1021 FTP.
select count(Trayectos.matricula) as "Total Trayectos"
from trayectos inner join autobuses
on trayectos.matricula=autobuses.matricula
where autobueses.matricula='1021 FTP'
Mostrar el número total de reservas para el trayecto 1.
select count(r.codigotrayecto) from reservas r
inner join trayectos t on
r.codigotrayecto=t."CÓDIGOTRAYECTO"
where t.códigotrayecto=1;
Mostrar los nombres de clientes que han hecho su reserva para el trayecto 1.
select ca.nombre from clientes_bus ca
inner join reservas r on
r.codigocliente=ca."CÓDIGOCLIENTE"
where r.codigotrayecto=1;
Exporta las tablas a un fichero .dmp con la utilidad exp (ver guía del DBA).
OK
Crea un nuevo tablespace llamado backup.
OK
Crea un usuario backupuser cuyo tablespace por defecto sea backup y adle permisos para todo.
Importa el fichero .dmp en el nuevo tablespace
No hay comentarios:
Publicar un comentario