Logo Studenta

4-Joins y Unions - Yuliana Ruiz Borrayo

¡Este material tiene más páginas!

Vista previa del material en texto

Programación y administración 
de la información.
Joins y Unions
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 1
Resumen de la clase pasada
SQL:
•Dudas Clase Pasada
•Dudas Tarea 2
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 2
Temas importantes: Sintaxis
•Mantener el código ordenado
•Mantener un mismo formato
•Acostumbrarse a usar prefijos
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 3
La clase de hoy:
Manipulación de datos en SQL (Continuación)
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 4
Resumen de la clase pasada
También usando LIKE, DISTINCT, ORDER, JOIN, etc
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 5
SELECT atributos
FROM relaciones
WHERE condiciones - selecciones
INNER JOINS Y OUTER JOINS
Los JOINS que vimos la clase pasada técnicamente se 
llaman INNER JOINS.
En SQL también existen los OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 6
Teoría de conjuntos
Que es un conjunto?
•Grupo de objetos que comparten entre si características o 
propiedades similares
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 7
C Austral
Escudo
Cristal
Kunstmann
Teoría de conjuntos
• 
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 8
C Austral
Escudo
Cristal
Kunstmann
Teoría de conjuntos
C={x | x es una cerveza}
Tales que. “Los x tales que x es una cerveza”
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 9
C Austral
Escudo
Cristal
Kunstmann
Teoría de conjuntos
• 
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 10
A
Teoría de conjuntos
• 
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 11
C Austral
Escudo
Cristal
Kunstmann
L
Unión
• 
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 12
A
B
1
3
2
4
5
7
8
Intersección
• 
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 13
A
B
1
3
2
4
5
7
8
INNER JOINS Y OUTER JOINS
Los JOINS que vimos la clase pasada técnicamente se 
llaman INNER JOINS.
En SQL también existen los OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 14
INNER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 15
ID Marca Producto Tipo Origen
1 Austral Lager Lager Pta Arenas
2 Austral Calafate Ale Pta Arenas
3 Kunstmann Torobayo Ale Valdivia
4 Cristal Lager Lager Santiago
ID Stock Bodega Formato Envase
1 500 Renca Bot350 24
2 350 Quilicura Lata350 24
3 0 Renca Lata350 24
4 150 Quilicura Lata473 24
3 300 Valdivia Lata350 24
Cervezas
Stock
INNER JOINS
SELECT marca, producto, bodega, stock
FROM cervezas c
JOIN stock s
ON c.id = s.id
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 16
INNER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 17
Marca Producto Bodega Stock
Austral Lager Renca 500
Austral Calafate Quilicura 350
Kunstmann Torobayo Renca 0
Kunstmann Torobayo Valdivia 300
Cristal Lager Quilicura 150
Resultado:
INNER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 18
Para el resto de esta clase vamos a considerar las relaciones de la base de datos 
venta_online (disponible en el servidor del curso).
El modelo ER
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 19
INNER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 20
Customers
INNER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 21
Orders
INNER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 22
Shippers
INNER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 23
SELECT c.customer_id, first_name, order_id, order_date, 
shipped_date, s.name as shipper
FROM customers c
JOIN orders o
ON c.customer_id=o.customer_id
JOIN shippers s
ON o.shipper_id = s.shipper_id;
En el SELECT
van las columnas
que quiero mostrar
(no olvidar prefijos)
En el FROM va 
la primera 
tabla
En el JOIN van 
las tablas a 
cruzar
En el ON van las 
condiciones de 
cruce
INNER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 24
Customers Orders Shippers
JOIN Compuesto
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 25
Order_items
Order_items_notes
JOIN Compuesto
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 26
Doble Llave
JOIN Compuesto
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 27
SELECT oi.order_id,
oi.product_id,
oi.quantity,
oi.unit_Price,
oin.note
FROM order_items oi 
JOIN order_item_notes oin
ON oi.order_id = oin.order_id
AND oi.product_id = oin.product_id;
OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 28
Un Outer Join considera valores que están fuera de la 
intersección de las tablas.
Para ejemplificar los Outer Joins vamos a partir con un Join 
normal como ejemplo.
OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 29
SELECT c.customer_id, 
first_name, 
Last_name,
order_id, 
order_date, 
shipped_date
FROM customers c
JOIN orders o
ON c.customer_id=o.customer_id
ORDER BY c.customer_id;
OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 30
OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 31
…
ON c.customer_id=o.customer_id
ORDER BY c.customer_id;
Orders
customers orders
OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 32
SELECT c.customer_id, 
first_name, 
Last_name,
order_id, 
order_date, 
shipped_date
FROM customers c
LEFT JOIN orders o
ON c.customer_id=o.customer_id
ORDER BY c.customer_id;
customers orders
OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 33
OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 34
SELECT c.customer_id,first_name, 
Last_name,
order_id, 
order_date, 
shipped_date
FROM customers c
RIGHT JOIN orders o
ON c.customer_id=o.customer_id
ORDER BY c.customer_id;
customers orders
OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 35
customers orders
=
customers orders
OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 36
SELECT c.customer_id, 
first_name,
last_name, 
order_id, 
order_date, 
shipped_date,
s.Name AS shipper
FROM customers c
LEFT JOIN orders o
ON c.customer_id=o.customer_id
JOIN shippers s
ON o.shipper_id=s.shipper_id
ORDER BY c.customer_id;
OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 37
customers orders
shippers
OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 38
SELECT c.customer_id, 
first_name,
last_name, 
order_id, 
order_date, 
shipped_date,
s.Name AS shipper
FROM customers c
LEFT JOIN orders o
ON c.customer_id=o.customer_id
LEFT JOIN shippers s
ON o.shipper_id=s.shipper_id
ORDER BY c.customer_id;
customers orders
shippers
OUTER JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 39
Resumen JOINS
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 40
UNION
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 41
Hasta ahora solo hemos visto cruces de tablas usando sus 
columnas.
También se pueden unir las filas de una tabla.
UNION
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 42
SELECT order_id,
order_date,
'Activa' AS status
FROM orders
WHERE order_date > '2019-01-01';
UNION
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 43
SELECT order_id,
order_date,
‘Inactiva' AS status
FROM orders
WHERE order_date <= '2019-01-01';
UNION
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 44
SELECT order_id,
order_date,
'Activa' AS status
FROM orders
WHERE order_date > '2019-01-01’
UNION
SELECT order_id,
order_date,
‘Inactiva' AS status
FROM orders
WHERE order_date <= '2019-01-01';
UNION
Programación y administración de la información – Universidad de los Andes – Facultad de Ciencias Económicas y Empresariales 45

Continuar navegando