Вы находитесь на странице: 1из 4

Ejercicios SQL Avanzado: Estos ejercicios se pueden realizar usando el cliente MySQL Query Browser o cliente mysql.

Parte 1: 1) Invoque alguna de las herramientas SQL el cliente MySQL Query Browser o cliente mysql. 2) Cree una base de datos nueva. Se necesita crear una estructura de tabla para almacenar datos. Ejecute las siguientes sentencias SQL para crear las tablas (En al archivo BD Subquerys se encuentras todas las sentencias de creacin de los objetos de base de datos).

Parte 2: 1) Se ejecutara exitosamente la siguiente sentencia SQL? SELECT * FROM actor;

Nota: la sentencia SQL anterior contiene muchos espacios en blanco entre las palabras. 2) Listar el pas del estudio MGM. Select pais, nombre from estudio Where nombre like %mgm%; 3) Listar los nombres y apellidos de los actores que participaron en pelculas realizadas en 1982, o en alguna pelcula que contenga la palabra FATAL en el ttulo. select * from actor where id_actor IN (select id_actor from elenco where id_pelicula IN (select id_pelicula from pelicula where titulo like '%FATAL%' or anno ='1982')); select a.* from actor INNER JOIN elenco e ON a.id_actor=e.id_actor INNER JOIN pelicula p ON e.id_pelicula=p.od_pelicula where titulo like '%FATAL%' or anno ='1982';

4) Quin fue el protagonista masculino de GUERRA DE LOS MUNDOS? Select pelicula.titulo, elenco.id_pelicula, elenco.id_actor, actor.nombre FROM elenco INNER JOIN actor ON elenco.id_actor=actor.id_actor INNER JOIN pelicula ON pelicula.id_pelicula=elenco.id_pelicula where titulo= "guerra de los mundos" and papel= "Protagonista" ;

5) Liste el nombre y el apellido de los actores y el tiempo de duracin de las pelculas que tienen un tiempo de duracin mayor que la pelcula REGRESO AL FUTURO. Select a.nombre, p.duracion FROM actor a INNER JOIN elenco e ON a.id_actor=e.id_actor INNER JOIN pelicula p ON p.id_pelicula=e.id_pelicula WHERE p.duracion>(select duracion from pelicula where titulo like 'Regreso al Futuro') 6) Muestre el ttulo y duracin de todas las pelculas producidas por los estudios 20TH CENTURY FOX, ordenando ascendentemente la salida por duracin. SELECT titulo, duracion FROM pelicula, estudio WHERE pelicula.id_estudio = estudio.id_estudio AND estudio.nombre LIKE '%century%'; 7) Liste los nombres y apellidos de los actores (MASCULINOS) que han sido protagonistas y su pas de procedencia es USA. Select nombre From actor, elenco WHERE sexo = 'M' AND pais = 'USA' AND actor.id_actor = elenco.Id_actor AND elenco.papel = 'protagonista';

8) Liste los nombres y apellidos de los actores que aparecen en las pelculas producidas por la UNIVERSAL STUDIOS. (si un actor aparece varias veces mostrarlo slo una vez). SELECT distinct actor.nombre FROM actor, elenco, pelicula, estudio WHERE actor.id_actor = elenco.id_actor AND elenco.id_pelicula = pelicula.id_pelicula and pelicula.id_estudio = estudio.id_estudio AND estudio.nombre LIKE '%universal%'; 9) Escriba una consulta para mostrar la suma de la duracin de todas las pelculas de cada estudio, muestre id_estudio, nombre estudio y totalduracin. SELECT a.nombre, b.id_estudio, COUNT( b.id_estudio ) AS 'Peliculas por estudio', SUM( b.duracion ) FROM estudio a, pelicula b WHERE a.id_estudio = b.id_estudio GROUP BY b.id_estudio; 10) Escriba una consulta para mostrar la cantidad de pelculas realizadas por cada estudio, muestre id_estudio, nombre estudio y cantidad de pelculas. select id_estudio, count(id_pelicula) from pelicula group by id_estudio;

11) Escriba una consulta para mostrar el nombre, apellido, pas y comisin de los actores que trabajaron en las pelculas de los aos 1930 hasta 2000.ordene la consulta en orden ascendente segn la comisin. Select nombre, pais,comision From actor,pelicula Where anno between 1930 and 2000 and Order by comision asc;

12) Escriba una consulta para mostrar por cada estudio la pelcula que obtuvo mas ganancias entre los aos 1970 al 2000, muestre el id_estudio, ttulo de la pelcula, ao de la pelcula, duracin y la ganancia. 13) Muestre el nombre, apellido, pas y sexo de cada actor que tiene una comisin. 14) Muestre el nombre, apellido, pas y la comisin para todos los actores. Ordene los datos de forma descendente segn la comisin. 15) Muestre el nombre y apellido de todos los actores en donde la tercera letra de su nombre sea C. 16) Muestre el ttulo de todas las pelculas que obtuvieron una ganancia superior al 50% del costo de produccin. 17) Muestre el nombre y apellido de todos los actores que nacieron entre 1920 y 1980 (ambos inclusive). 18) Listar los nombres y apellidos de los actores que tienen una comisin superior al promedio de las comisiones de todos los actores. 19) Listar los nombres y apellidos de los actores que contienen la letra Z como parte del nombre o apellido. 20) Listar el nombre y apellido del actor que obtuvo el mayor salario en la pelcula GUERRA DE LOS MUNDOS.
SELECT a.nombre, e.salario, max( e.salario ) FROM actor a INNER JOIN elenco e ON a.id_actor = e.id_actor INNER JOIN pelicula p ON p.id_pelicula = e.id_pelicula WHERE titulo = "guerra de los Mundos"

21) Use la sentencia LEFT OUTER JOIN para mostrar los datos de las tablas estudio-pelcula. 22) Muestre slo los 3 primeros registros de la tabla actor ordenados ascendentemente por pas.

23) Muestre slo los 5 primeros registros de la tabla pelcula ordenados descendentemente por ganancia. 24) Eliminar los datos de las tablas actor, estudio, pelcula y elenco. 25) Eliminar las tablas actor, estudio y pelcula.

Вам также может понравиться