Descarga la aplicación para disfrutar aún más
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
Compartir