Buscar este blog

martes, 5 de noviembre de 2013

Ejercicios SQL 2

Base de Datos Multicines

1. Debes descargar el fichero excel de los multicines
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.

-----------------------------------
--CLAVES PRIMARIAS
-----------------------------------
--Clave Primaria Tabla: Entrada cine
alter table entrada_cine
add constraint pk_codigoentrada
primary key (códigoentrada);
--Clave Primaria Tabla: Peliculas cine
alter table peliculas_cine
add constraint pk_codigopelicula
primary key (código);
--Clave Primaria Tabla: Salas cine
alter table salas_cine
add constraint pk_codigosala
primary key (códigosala);
--Clave Primaria Tabla: Sesion cine
alter table sesion_cine
add constraint pk_codigosesion
primary key (códigosesión);
-----------------------------------
--CLAVES EXTRANJERAS
-----------------------------------
alter table entrada_cine
add constraint FK_codigosesiion
foreign key (códigosesión)
references sesion_cine(códigosesión);

alter table sesion_cine
add constraint FK_codigopeli
foreign key (códigopeli)
references peliculas_cine(código);

alter table sesion_cine
add constraint FK_codigosala
foreign key (códigosala)
references salas_cine(códigosala);


4. Crea las siguientes consultas, son tan fáciles...

  • Mostrar el número total de salas que dispongan de THX.
SELECT COUNT(*) FROM salas_cine WHERE SALAS_CINE.thx='Yes';
  • Mostrar el número total de salas que estén adecuadas para minusválidos y tengan THX.
SELECT COUNT(*) FROM salas_cine WHERE thx='Yes' and "MINUSVÁLIDOS"='Yes';
  • Mostrar las tres salas con mayor capacidad.
select * from salas where ROWNUM <= 3 order by capacidad desc;
  • Mostrar la suma total de asientos que tienen entre todas las salas.
select sum(capacidad) from salas_cine;
  • Mostrar todas las pelis del género drama
select * from peliculas_cine where "GÉNERO"='Drama';
  • Dado un código de sala  mostrar los nombres de pelis que se proyectan.
select * from peliculas_cine PC
inner join sesion_cine SC
on PC.código=SC.códigopeli
where PC."CÓDIGO"=1;

  • Dado un código de peli y mostrar las salas y la horas en las que se proyecta.
select salas.nombre, sesion.hora from salas
inner join sesion
on salas."CÓDIGOSALA"=sesion."CÓDIGOSALA"
where sesion.códigopeli=1;

  • Mostrar el total de entradas vendidas para cada sesión.
select  ENC."CÓDIGOSESIÓN", sum(ENC."CÓDIGOENTRADA") as Total_Entradas from entrada_cine ENC 
group by ENC."CÓDIGOSESIÓN" order by ENC."CÓDIGOSESIÓN";

--------
Exporta las tablas a un fichero .dmp con la utilidad exp (ver guía del DBA).
OK

Crea un nuevo tablespace llamado multicines.

Habrimos una ventana de comandos:

SQLPLUS SYSTEM
CONTRASEÑA

CREATE TABLESPACE MULTICINES
DATAFILE '/oracle/oradata/MULTICINES.dbf' SIZE 100M
AUTOEXTEND ON NEXT 200K MAXSIZE 200M;

Crea un usuario usercines cuyo tablespace por defecto sea multicines y dale permisos para todo.

SQLPLUS SYSTEM
CONTRASEÑA

CREATE USER USERCINES IDENTIFIED BY 12345678
DEFAULT TABLESPACE MULTICINES
 


Importa el fichero .dmp en el nuevo tablespace
OK

No hay comentarios:

Publicar un comentario