0% encontró este documento útil (0 votos)
14 vistas33 páginas

SQL101 - BD Modulo 5

El documento introduce los conceptos de consultas SQL con datos de varias tablas mediante JOIN y UNION. Explica cómo usar JOIN implícito, LEFT JOIN, RIGHT JOIN, FULL JOIN y UNION para combinar datos de múltiples tablas en una sola consulta.
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
14 vistas33 páginas

SQL101 - BD Modulo 5

El documento introduce los conceptos de consultas SQL con datos de varias tablas mediante JOIN y UNION. Explica cómo usar JOIN implícito, LEFT JOIN, RIGHT JOIN, FULL JOIN y UNION para combinar datos de múltiples tablas en una sola consulta.
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 PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 33

Introducción a SQL y bases de datos relacionales

Consultas con datos de varias tablas por registro

1
Ignacio Despujol Zabala
Objetivos
Al final de este vídeo serás capaz de:
• Presentar en una consulta datos de varias tablas en el mismo registro
• Hacer un JOIN implícito de dos o más tablas
• Conocer los tipos de JOIN disponibles
Join implícito
SELECT * FROM Products,Categories

https://www.w3schools.com/sql/trysql.asp?filename=trysql_asc
Estructura base de datos de ejemplo
Join implícito con relación
SELECT * FROM Products,Categories WHERE Products.CategoryID=Categories.CategoryID

SELECT P.ProductName, C.CategoryName FROM Products P,Categories C


WHERE P.CategoryID=C.CategoryID
Join implícito con relación varias tablas
SELECT O.*, P.ProductName, C.CategoryName FROM OrderDetails O,Products P,Categories C
WHERE O.ProductID=P.ProductID AND P.CategoryID=C.CategoryID
La instrucción JOIN
• Permite obtener conjuntamente datos de varias tablas en el mismo
registro
• Se usa en tablas relacionadas a través de claves secundarias
• Para devolver de más de dos tablas hay que encadenar varios JOIN
• Tipos:
• INNER: Devuelve solo los registros que tengan datos en las dos tablas
• LEFT o RIGHT: Devuelve todos los registros de una de las tablas y los datos de
la otra que estén relacionados con ellos
• OUTER: Devuelve todos los registros de las dos tablas
Tipos de Joins
Resumen
Ahora puedes:
• Presentar en una consulta datos de varias tablas
• Hacer un JOIN implícito de dos o más tablas
• Describir los tipos de JOIN disponibles y qué registros devuelven
Atribución
La fuentes de las imágenes son:

• Título: By alaa kaddour - https://www.character-count.info, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=99420428


• Transparencia 8: Arbeck, CC BY 3.0 <https://creativecommons.org/licenses/by/3.0>, via Wikimedia Commons
https://commons.wikimedia.org/wiki/File:SQL_Joins.svg

10
Introducción a SQL y bases de datos relacionales

Tipos de comando JOIN

11
Ignacio Despujol Zabala
Objetivos
Al final de este vídeo serás capaz de:
• Realizar comandos INNER, LEFT, RIGHT y OUTER JOIN de dos o más
tablas
Estructura base de datos de ejemplo
INNER JOIN
SELECT P.ProductName, C.CategoryName FROM Products P INNER JOIN Categories C
ON P.CategoryID=C.CategoryID

https://www.w3schools.com/sql/trysql.asp?filename=trysql_asc
Ejemplo (tabla de objetivos de venta)

CREATE TABLE SalesObjectives (


objectiveid int PRIMARY KEY,
employeeID int NOT NULL UNIQUE,
sales int NOT NULL,
year int NOT NULL
);
INSERT INTO SalesObjectives (objectiveid, employeeID, sales, year)
VALUES (1,1,100000,2022), (2,2,125000,2022);
INNER JOIN
SELECT E.EmployeeID, E.LastName, E.Firstname, S.Sales, S.Year FROM Employees E
INNER JOIN SalesObjectives S ON E.employeeID=S.employeeID
LEFT JOIN
SELECT E.EmployeeID, E.LastName, E.Firstname, S.Sales, S.Year FROM Employees E
LEFT JOIN SalesObjectives S ON E.employeeID=S.employeeID

SELECT E.EmployeeID, E.LastName, E.Firstname, S.Sales, S.Year FROM Employees E LEFT


JOIN SalesObjectives S ON E.employeeID=S.employeeID WHERE S.EmployeeID IS NULL
RIGHT JOIN
SELECT E.EmployeeID, E.LastName, E.Firstname, S.Sales, S.Year FROM Employees E
RIGHT JOIN SalesObjectives S ON E.employeeID=S.employeeID
FULL JOIN / FULL OUTER JOIN
SELECT * FROM Products FULL JOIN Categories
FULL JOIN / FULL OUTER JOIN

https://www.w3schools.com/sql/sql_join_full.asp
FULL JOIN / FULL OUTER JOIN
SELECT Customers.CustomerName, Orders.OrderID FROM Customers FULL OUTER JOIN
Orders ON Customers.CustomerID=Orders.CustomerID ORDER BY
Customers.CustomerName;

https://www.w3schools.com/sql/sql_join_full.asp
JOIN de varias tablas
SELECT O.OrderDetailID,O.OrderID,P.ProductName, C.CategoryName, O.Quantity, P.Price,
O.Quantity*P.Price AS Total FROM OrderDetails O LEFT JOIN Products P ON
P.ProductID=O.ProductID LEFT JOIN Categories C ON P.CategoryID=C.CategoryID

Operadores aritméticos: +, -, *, /, %
Resumen
Ahora puedes:
• Realizar comandos INNER, LEFT, RIGHT y OUTER JOIN de dos o más
tablas, seleccionando el más adecuado a tus necesidades
Atribución
La fuentes de las imágenes son:

• Título: By alaa kaddour - https://www.character-count.info, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=99420428


• Transparencias 4 en adelante: Derivado de Arbeck, CC BY 3.0 <https://creativecommons.org/licenses/by/3.0>, via Wikimedia Commons
https://commons.wikimedia.org/wiki/File:SQL_Joins.svg

24
Introducción a SQL y bases de datos relacionales

Unión de Consultas

25
Ignacio Despujol Zabala
Objetivos
Al final de este vídeo serás capaz de:
• Unir los datos de dos SELECT con el comando UNION
Estructura base de datos de ejemplo
SELECT UNION
• El comando UNION concatena los resultados de dos o más SELECTS
• Deben tener el mismo número de campos
• Las columnas deben estar en el mismo orden
• Deben tener tipos similares, aunque intenta acoplar los tipos
• Coge el nombre de los campos de la primera tabla
• Por defecto selecciona valores únicos, si los queremos repetidos usar
UNION ALL
Ejemplo
SELECT City FROM Customers UNION SELECT City FROM Suppliers ORDER BY City

https://www.w3schools.com/sql/trysql.asp?filename=trysql_asc
Ejemplo
SELECT O.OrderDetailID,O.OrderID,P.ProductName, C.CategoryName, O.Quantity, P.Price,
O.Quantity*P.Price AS Total FROM OrderDetails O LEFT JOIN Products P ON P.ProductID=O.ProductID
LEFT JOIN Categories C ON P.CategoryID=C.CategoryID WHERE CategoryName="Dairy Products" AND
TOTAL>175
UNION ALL
SELECT O.OrderDetailID,O.OrderID,P.ProductName, C.CategoryName, O.Quantity, P.Price,
O.Quantity*P.Price AS Total FROM OrderDetails O LEFT JOIN Products P ON P.ProductID=O.ProductID
LEFT JOIN Categories C ON P.CategoryID=C.CategoryID WHERE CategoryName="Produce" AND
TOTAL>200
ORDER BY O.OrderDetailID
Ejemplo
Resumen

Ahora puedes:
• Unir los datos de dos SELECT con el comando UNION
Atribución
La fuentes de las imágenes son:

• Título: By alaa kaddour - https://www.character-count.info, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=99420428

33

También podría gustarte