ALUMNO: OSCAR ALBERTO ZORRERO RUIZ
MATRICULA: 76441
GRUPO: K065
MATERIA: BASE DE DATOS 1
PROFESOR: MTRO. JUAN MANUEL AMEZCUA ORTEGA
ACTIVIDAD: 3.- MySQL
CIUDAD: GUADALAJARA, JALISCO
FECHA: 18 DE OCTUBRE DEL 2020
1. INTRODUCCIÓN:
En esta actividad conoceremos y aplicaremos el lenguaje de la base de datos
MySQL, lo cual nos permitirá crear tablas, modificarlas, solicitar información específica
utilizando lo aprendido en las lecturas de aprendizaje de la unidad, entre otros.
Para llevar a cabo la actividad, es necesario instalar la base de datos MySQL 8.0
que es la actualización más reciente en la página oficial https://dev.mysql.com, en el
apartado de descargas.
Así como descargar la base de datos sakila-schema, subida a la plataforma de la
universidad, que será utilizada durante todo el desarrollo. Tomando en cuenta las
instrucciones que son las siguientes:
Consultas.
1. Seleccionar todos los actores que hayan participado en una película de comedia
(Comedy)
2. Saber cuántas películas, de que categoría y en qué idioma ha filmado la Actriz
SANDRA KILMER
3. Seleccionar el nombre de la película y de los actores de todas aquellas que sean
filmadas en idioma Italiano
4. Seleccionar la dirección completa de los compradores que sean de México y USA
5. Seleccionar la dirección completa del staff que sean de USA
6. Quién es el responsable de cada una de las tiendas y su dirección, junto con la
dirección de la tienda.
7. Cuántas rentas se realizaron en cada uno de los meses del año 2005 y 2006
8. Qué responsable del staff realizó más rentas y cuál fue el ingreso
9. Quién fue la persona que realizo más rentas de una película en Francés
10. Qué actores son los que prefieren las personas que viven en México
Procesos.
1. ¿Cuáles serían los cambios necesarios para agregar una dirección a los actores?
2. ¿Qué necesitarías hacer para saber de qué país es cada película?
3. Agregar una tabla para guardar los datos del director de la película.
4. Crear una vista que nos indique cuántas películas hay en cada idioma.
5. ¿Qué pasa si borramos una tienda?
2. DESARROLLO.
Consultas.
1. Seleccionar todos los actores que hayan participado en una película de comedia
(Comedy).
SELECT first_name AS Nombre, Last_name AS Apellido, name AS Categoria, title AS
Pelicula
FROM actor ac, category ca, film
WHERE ca.name = 'Comedy';
2. Saber cuántas películas, de que categoría y en qué idioma ha filmado la Actriz
SANDRA KILMER
SELECT COUNT(*) AS Numero, category.name AS Nombre_Categoria, language.name
AS Idioma
FROM actor ac, category, language
WHERE ac.first_name = 'SANDRA' AND ac.last_name = 'KILMER';
3. Seleccionar el nombre de la película y de los actores de todas aquellas que sean
filmadas en idioma Italiano.
SELECT film.title AS Pelicula, actor.first_name AS Nombre, actor.Last_name AS Apellido,
name AS Idioma
FROM film, actor, language id
WHERE id.name = 'Italian';
4. Seleccionar la dirección completa de los compradores que sean de México y USA
SELECT address AS Direccion, country As pais
FROM address ad, Country co
WHERE co.country ‘Mexico’ OR co.country 'United States';
5. Seleccionar la dirección completa del staff que sean de USA
SELECT address AS Dirección
FROM address ad, Country co
WHERE co.country = 'United States';
6. Quién es el responsable de cada una de las tiendas y su dirección, junto con la
dirección de la tienda.
SELECT first_name AS Nombre, last_name AS Apellido, address AS
Direccion_Encargado, address AS Direccion_Tienda
FROM staff, store, address;
7. Cuántas rentas se realizaron en cada uno de los meses del año 2005 y 2006
SELECT COUNT(*) AS Total_Rentas
FROM rental r
WHERE year(rental_date) in (2005, 2006);
8. Qué responsable del staff realizó más rentas y cuál fue el ingreso
SELECT CONCAT(c.city, _utf8',', cy.country) AS store
, CONCAT(m.first_name, _utf8' ', m.last_name) AS manager
, SUM(p.amount) AS total_sales
FROM payment AS p
INNER JOIN rental AS r ON p.rental_id = r.rental_id
INNER JOIN inventory AS i ON r.inventory_id = i.inventory_id
INNER JOIN store AS s ON i.store_id = s.store_id
INNER JOIN address AS a ON s.address_id = a.address_id
INNER JOIN city AS c ON a.city_id = c.city_id
INNER JOIN country AS cy ON c.country_id = cy.country_id
INNER JOIN staff AS m ON s.manager_staff_id = m.staff_id
GROUP BY s.store_id
ORDER BY cy.country, c.city
9. Quién fue la persona que realizo más rentas de una película en Francés.
SELECT first_name AS Nombre,count(*)
FROM staff, rental, language la
WHERE la .name='FRENCH';
10. Qué actores son los que prefieren las personas que viven en México
SELECT first_name AS Nombre, Last_name AS Apellido
FROM actor ac, country co
where co.country ='Mexico'
Procesos.
Muestra las 5 operaciones solicitadas en el archivo de apoyo con su respectivo
código de la consulta que compruebe el correcto funcionamiento de las
operaciones realizadas.
1.- ¿Cuáles serían los cambios necesarios para agregar una dirección a los actores?
ALTER table actor
ADD address varchar(50);
Agregar a la tabla actor el atributo address (direccion)
2. ¿Qué necesitarías hacer para saber de qué país es cada película?
Una nueva tabla llamada country_film con una llave llamada country_film_id, y el campo
country,
CREATE TABLE cuntry_film (
country_film_id smallint unsigned default null auto_increment,
country varchar(50) not null,
PRIMARY KEY (country_film_id) );
3. Agregar una tabla para guardar los datos del director de la película.
Como ya se creó una tabla para saber de qué país es cada película, se le agrega un
campo que se llame dirección
/*ALTER table cuntry_film
ADD address varchar(50) not null;*/
4. Crear una vista que nos indique cuántas películas hay en cada idioma.
SELECT film.title AS Pelicula, actor.first_name AS Nombre, actor.Last_name, name AS
Idioma
FROM film, actor, language id
WHERE id.name = name
5. ¿Qué pasa si borramos una tienda?
Afectaría a la entidad (personal) staff ya que hay una relación con el código Id como clave
primaria
Afectaría a la entidad Alquiler (rental) ya que tienda (store) aparece como atributo foráneo.
La entidad cliente (customer) afectaría ya hay una relación entre la entidad tienda (store)
y cliente al pasar la entidad tienda a la entidad cliente como clave primaria.
La entidad cliente (customer) afectaría a dirección (address) ya que hay una relación con
el código Id como clave primaria.
Afectaría a inventario (Inventory) ya que hay una relación del código Id como primaria.
Prácticamente se afectarían toda la relación entre las entidades de la base de datos
porque al borrar tienda (store) se perdería la relación con algunas entidades y no
tendríamos información de la tienda (stores) y sus atributos.
3. BIBLIOGRAFÍA.
luis alberto casillas, marc gibert, oscar perez. (2005). base de datos en mysql. d.r.: uoc
formacion de posgrado
D.A.R. (2009). administracion de base de datos de mysql. girona españa: universidad de
girona.
D.A.R. (2010). nysql tutorial. d.r: Tutorialspoint.com.