0% encontró este documento útil (0 votos)
9 vistas11 páginas

SQL: Consultas y Ejercicios en TICS320

El documento presenta una clase de SQL enfocada en bases de datos, cubriendo temas como la estructura del SELECT, el uso de JOINs, y la optimización de consultas. Incluye ejemplos prácticos y ejercicios propuestos para reforzar el aprendizaje sobre la manipulación de datos en múltiples tablas. Además, se discuten diferentes tipos de JOIN y se ofrecen consultas SQL específicas para resolver problemas relacionados con actores y películas.

Cargado por

David Larrondo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas11 páginas

SQL: Consultas y Ejercicios en TICS320

El documento presenta una clase de SQL enfocada en bases de datos, cubriendo temas como la estructura del SELECT, el uso de JOINs, y la optimización de consultas. Incluye ejemplos prácticos y ejercicios propuestos para reforzar el aprendizaje sobre la manipulación de datos en múltiples tablas. Además, se discuten diferentes tipos de JOIN y se ofrecen consultas SQL específicas para resolver problemas relacionados con actores y películas.

Cargado por

David Larrondo
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Bases de Datos

TICS320
Clase SQL

David Larrondo N.
Primer Semestre
2024
Agenda

Revisión Actividad Modelo Físico


1 Resolver dudas y mostrar otros ejemplos

Repaso estructura del SELECT


2 SELECT, FROM, WHERE, GROUP BY, ORDER BY, LIMIT

HAVING
3 Lo incorporamos como una posible herramienta para filtrar

Sub-consultas (SUBQUERIES)
4 Ejercicios propuestos

Optimización de consultas
5 Ejercicios propuestos
TICS320 - Bases de Datos | 2024
3 SQL - Múltiples tablas

INNER JOIN
Nuestro método separando las tablas por comas
y agregando los filtros en el WHERE es
equivalente al INNER JOIN.
Esta sería otra forma de realizar lo mismo,
algunos la prefieren, ya que es más sencillo de
leer para el ojo humano, pero para la base de
datos es exactamente lo mismo.
Importante destacar que en general es bueno
utilizar el nombre de la tabla antes del atributo,
podemos crear alias si son muy largos. En
algunos casos la consulta puede directamente
arrojar un error, como en el ejemplo de esta
imagen, dado que la llave “Product” es la misma
en ambas tablas, con el nombre de la tabla se
evita la ambigüedad.
TICS320 - Bases de Datos | 2024
3 SQL - Múltiples tablas

Más / otros JOIN

Además del LEFT JOIN, por


supuesto está el RIGHT JOIN,
la única diferencia sería en el
orden de las tablas, si la de
la izquierda o la derecha es
la base (que no tiene NULL).

Pensemos en algunos
ejemplos donde estos JOIN
sería útiles.
Agenda

¿Cómo leer una base de datos?


1
Ejemplos uso de funciones y filtros en SELECT
2 Funciones matemáticas, Group By y operadores lógicos en WHERE

Uniendo múltiples tablas


3 Esto se denomina JOIN - existen varios tipos y formas de hacerlo

Más ejemplos y desafíos mezclando lo visto hoy


4 Ejercicios propuestos
TICS320 - Bases de Datos | 2024
4 SQL - Ejercicios Propuestos

Otras preguntas para practicar

1. Nombre y apellido del actor que tuvo como rol “Drinker #1” junto con el nombre de la película.
2. Nombre de las películas que ha actuado el actor de nombre “Akimitsu”.
3. Nombre la película donde actuaron más mujeres.
4. ¿Cuáles son los roles que han tenido a más de un actor en una misma película? Entregar el
nombre de la película y el rol. Ordene por nombre de película desde la A a la Z.
5. ¿Cuál es el género de películas con el mayor ranking promedio?
1
SELECT
a.first_name,
a.last_name,
[Link]
FROM
actors a
JOIN
roles r ON a.actor_id = r.actor_id
JOIN
movies m ON r.movie_id = m.movie_id
WHERE
r.role_name = 'Drinker #1';
2
SELECT
[Link]
FROM
actors a
JOIN
roles r ON a.actor_id = r.actor_id
JOIN
movies m ON r.movie_id = m.movie_id
WHERE
a.first_name = 'Akimitsu';
3
SELECT
[Link],
COUNT(a.actor_id) AS num_actresses
FROM
actors a
JOIN
roles r ON a.actor_id = r.actor_id
JOIN
movies m ON r.movie_id = m.movie_id
WHERE
[Link] = 'F'
GROUP BY
[Link]
ORDER BY
num_actresses DESC
LIMIT 1;
4
SELECT
[Link],
r.role_name
FROM
movies m
JOIN
roles r ON m.movie_id = r.movie_id
GROUP BY
[Link], r.role_name
HAVING
COUNT(r.actor_id) > 1
ORDER BY
[Link] ASC;
5
SELECT
g.genre_name,
AVG([Link]) AS average_rating
FROM
genres g
JOIN
movies m ON g.genre_id = m.genre_id
JOIN
ratings r ON m.movie_id = r.movie_id
GROUP BY
g.genre_name
ORDER BY
average_rating DESC
LIMIT 1;

También podría gustarte