Subconsultas y tablas cruzadas

Anuncio
CONSULTAS:
CAMPOS CALCULADOS, SUBCONSULTAS Y CONSULTAS CON VARIAS TABLAS
1.- Todas las películas cuentan con un inicio y un fin (créditos de la película), de una duración aproximada de 10 minutos.
Según esto, listar el nombre y la duración total de cada película.
select nombre,(duracion+10) as Duracion_total
from pelicula;
2.- ¿Qué antigüedad tiene cada una de las películas?
select nombre, (2014-Año) as Antigüedad
from pelicula;
3.- Indicar el nombre de categoría de película que figura en segundo lugar.
Para que el resultado sea correcto el campo Id_categoria ha de estar ordenado de menor a mayor, de no ser así hay que
hacer una consulta previa: .. order by id_categoria asc
select nombre, Id_categoria+1 as Segunda
from categoria
where Id_categoria=(select min(Id_categoria)
from categoria);
4.- Muestra el nombre y el apellido del cliente más joven.
select nombre, apellido
from cliente
where fech_nac = (select max(fech_nac)
from cliente);
5.- ¿Qué películas están disponibles? Indica solo su código.
select id_pelicula
from pelicula
where id_pelicula in (select pelicula
from inventario
where disponible=1);
//La disponibilidad de 5 se cambio en los ejercicios anteriores y pasó a ser 1.
6.- ¿Cuál es nombre y la duración de la película más antigua?
select nombre, duracion
from pelicula
where año = (select max(año)
from pelicula);
7.- ¿Cuántos cliente tienen por apellido ‘Aliaga’?
select count(*)
from cliente
where apellido=’Aliaga’;
8.- ¿Qué cliente con apellido Arnal tiene menor edad? Indica su nombre, apellido y fecha de nacimiento
Select nombre, apellido, fech_nac
from cliente
where (‘20140402’- fech_nac) = (select min(fech_nac) from cliente);
9.- Listado de las calles que cuyo nombre empiece por ‘M’ y no almacenen el patrón ‘an’
select direccion
from direccion
where direccion like 'M%' and direccion not like '%an%';
10.-Muestra un listado de los identificadores de las películas cedidas en alquiler y de los identificadores de los clientes que
las han solicitado ordenado descendentemente por el identificador de éstos y por identificador de la película.
select cliente, inventario
from alquiler order by cliente, inventario;
11.- ¿Cuántas películas comienzan por ‘c’?
select count(*)
from pelicula
where nombre like 'C%';
12.- ¿Cuál es la duración total de todas las películas cuyo nombre contiene la letra ‘a’?
select sum(duracion) as Duracion_total_con _A
from pelicula
where nombre like ‘%a%’;
13.- ¿Cuál es la duración media de las peliculas musicales?
Select avg(pelicula.duracion)
from pelicula, categoria
where categoria.nombre=’Musical’ and
categoria.Id_categoria=pelicula.categoria;
14.- Indica de qué tipo (nombre de categoría) está catalogada la película Cabaret.
select categoria.nombre
from categoria,pelicula
where (categoria.Id_categoria=pelicula.categoria and pelicula.nombre='Cabaret');
15.- ¿Qué disponibilidad tiene la película ‘Grease’?
select inventario.disponible
from inventario,pelicula
where pelicula.nombre='Grease' and
pelicula.Id_Pelicula=Inventario.Pelicula;
16.- Indica cuál es el nombre(s) de la película(s) que figuran con número de categoría 3.
select.nombre
from pelicula,
where categoria=3;
17.- ¿En qué ciudad vive Andrés Arnal?
Select direccion.ciudad
from direccion, cliente
where cliente.nombre='Andrés' and cliente.apellido='Arnal' and
direccion.id_direccion=cliente.direccion;
18.-Haz un listado de todas las películas indicando cuál es su categoría.
select pelicula.nombre, categoria.nombre
from pelicula, categoria
where pelicula.id_pelicula=categoria.id_categoria;
19.- ¿Cuántas películas del inventario están en alquiler?
Select count(*)
from inventario, alquiler
where disponible=1 and Inventario.id_inventario=alquiler.inventario;
20.- ¿Qué película alquiló el cliente 2, el día 10/06/2003?
Select cliente. nombre, cliente.apellido
from cliente,alquiler,inventario,película //cliente q. alquila película de un inventario q. me da el listado de las pelis
where alquiler.fech_alquiler='20030610' and alquiler.cliente= 2 and
alquiler.cliente=cliente.Id_Cliente and
alquiler.inventario=inventario.Id_inventario and
inventario.pelicula=pelicula.id_pelicula;
Descargar