Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Sakila (Modelo Relacional y Consultas Mysql)

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Actor (actor_id, first_name, last_name, last_update)

Address (address_id, address, address2, district, postal_code, phone,


last_update, city_id)
Category (category_id, name, last_update)
City (city_id, city, last_update, country_id)
Country (country_id, country, last_update)
Customer (customer_id, first_name, last_name, email, active, create_date,
last_update, address_id, store_id)
Film (film_id, title, description, release_year, rental_duration, rental_rate,
length, replacement_cost, rating, special_features, language_id,
original_language_id)
Film_Actor (actor_id, film_id, last_update)
Film_Category (film_id, category_id, last_update)
Film_Text (film_id, title, description)
Inventory (inventory_id, last_update, store_id, film_id)
Language (language_id, name, last_update)
Payment (payment_id, amount, payment_date, last_update, rental_id,
customer_id, staff_id)
Rental (rental_id, rental_date, return_date, last_update, staff_id,
inventory_id, customer_id)
Staff (staff_id, first_name, last_name, picture, email, active, username,
password, last_update, store_id, address_id)
Store (store_id, last_update, manager_staff_id, address_id)

Mostrar toda la informacin de la tabla film


PROJECT (Film / film_id, title, description, release_year, rental_duration,
rental_rate, length, replacement_cost, rating, special_features)
SELECT * FROM film;

Mostrar slo el ttulo y el rating de todos las pelculas


PROJECT (Film / title, rating)
SELECT title, rating FROM film;

Mostrar slo las pelculas con rating R


PROJECT (SELECT (Film / rating = R) / title, rating)
SELECT title, rating FROM film WHERE rating = 'R';

Mostrar slo las pelculas con rating R que duren entre 90 y 120 minutos
inclusive.
PROJECT (SELECT (Film / rating = R ^ length >= 90 ^ length <= 120 ) /
title, rating, length)
SELECT title, rating, length FROM film WHERE rating = 'R' AND length>=90
AND length<=120;

Obtener en cuntas pelculas ha participado cada actor


PROJECT (actor JOIN (actorid = actorid) film_actor / lastname, firstname,
CUENTA film_id (film_actor))
SELECT CONCAT(actor.last_name,', ',actor.first_name) Actor,
COUNT(film_actor.film_id) FROM actor INNER JOIN film_actor ON
actor.actor_id = film_actor.actor_id GROUP BY actor.actor_id, actor ORDER
BY actor;

Calcular cunto ha gastado un cliente en renta de pelculas


PROJECT (customer JOIN (customer_id = customer_id) payment / firstname,
lastname, SUMA amount (payment))
SELECT CONCAT(first_name,' ',last_name) Cliente, SUM(amount) 'Gasto
Total' FROM customer INNER JOIN payment ON customer.customer_id =
payment.customer_id GROUP BY Cliente;
Generar una consulta que regresa todas las pelculas que duran 2 horas
junto con los actores que participaron en cada pelcula.

PROJECT (SELECT (film JOIN (film_id = film_id= film_actor) (film_actor JOIN


(actor_id = actor_id) actor) / length = 120) / title, firstname, lastname,
length)
SELECT title, GROUP_CONCAT(CONCAT(first_name,' ',last_name)) Actores,
length FROM film INNER JOIN film_actor ON film.film_id = film_actor.film_id
INN
ER JOIN actor ON film_actor.actor_id = actor.actor_id WHERE length = 120
GROUP BY title ORDER BY title;

Se desea saber con cules actores han trabajado con cierto actor
SELECT (actor JOIN (actor_id = actor_id) film_actor / actor_id!=163 ^ film_id
IN PROJECT(SELECT (actor / actor_id = 163) / film_id)

SELECT DISTINCT actor.actor_id AS 'ID', CONCAT(first_name,' ',last_name) AS


Actor FROM actor INNER JOIN film_actor ON (actor.actor_id=film_actor.actor
_id) WHERE actor.actor_id!=163 AND film_id IN (SELECT film_id FROM
film_actor WHERE actor_id=163) ORDER BY Actor;

Mostrar la consulta y el resultado que obtenga el par de actores que han


trabajado en ms pelculas juntos. Por ejemplo, quiz Cristopher y Bela
Walken han trabajado en 50 pelculas. La consulta debe regresar a los dos
actores y el nmero de pelculas.
PROJECT (SELECT (actor JOIN (film_actor JOIN (actor_id = actor_id) (film_id =
film_id ^actor_id = actor_id) (film_actor AS colega JOIN (actor_id = actor_id)
actor AS actor_colega)) / actor.first_name, actor.last_name,
actor_colega.first_name, actor_colega.last_name)
SELECT actor.first_name, actor.last_name,
actor_colega.first_name,
actor_colega.last_name,
COUNT(*) as n from actor
INNER JOIN fil
m_actor on (actor.actor_id = film_actor.actor_id)
INNER JOIN film_actor
colega on
(film_actor.film_id=colega.film_id and
actor.actor_id <> colega.actor_id)
INNER JOIN actor actor_colega on
(colega.actor_id=actor_colega.actor_id) GROUP BY
actor.first_name, a
ctor.last_name,
actor_colega.first_name, actor_colega.last_name
ORDER BY n DESC LIMIT 1;

Realizar un desplegado de pelculas en cuya descripcin se encuentre la


palabra great
PROYECT(SELECT (film, description LIKE %great%)/ title, description)
SELECT title, description FROM film WHERE description LIKE '%great%';
Realizar un desplegado de pelculas en cuya descripcin se encuentre la
palabra great good
PROYECT(SELECT (film, description LIKE %great good%)/ title, description)
SELECT title, description FROM film WHERE description LIKE '%great good%';

Realizar un desplegado de pelculas en cuya descripcin se encuentre la


palabra very good
PROYECT(SELECT (film, description LIKE %very good%)/ title, description)
SELECT title, description FROM film WHERE description LIKE '%very good%';

Realizar un desplegado de pelculas en cuya descripcin se encuentre la


palabra bad
PROYECT(SELECT (film, description LIKE %bad%)/ title, description)
SELECT title, description FROM film WHERE description LIKE '%bad%';

Obtener el promedio de rentas por da de la semana


select weekday(solo_fecha) as NumDia, dayname(solo_fecha) as Dia,
avg(rentas) as 'Promedio de Rentas', count(*) as 'N Dias', avg(rentas) *
count(*) as
Total from (select date(rental_date) as solo_fecha, count(*) as rentas from
rental group by solo_fecha) agrupado_por_dia group by Dia, NumDia order
by NumDia;

You might also like