1 / 122

SICI-4030 Base de Datos

SICI-4030 Base de Datos. Prof. Nelliud D. Torres SQL - Avanzado– DML DIRECTIVA SELECT. CONTENIDO. UNIÓN DE DOS O MÁS TABLAS HACIENDO JOIN CON IN Y EXITS UNIENDO MÚLTIPLES TABLAS RELATIONAL SET OPERATORS UNION UNION ALL INTERSECT MINUS JOIN OPERATORS INNER JOIN (Natural) OUTER JOIN

shika
Download Presentation

SICI-4030 Base de Datos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SICI-4030Base de Datos Prof. Nelliud D. Torres SQL - Avanzado– DML DIRECTIVA SELECT

  2. CONTENIDO • UNIÓN DE DOS O MÁS TABLAS • HACIENDO JOIN CON IN Y EXITS • UNIENDO MÚLTIPLES TABLAS • RELATIONAL SET OPERATORS • UNION • UNION ALL • INTERSECT • MINUS • JOIN OPERATORS • INNER JOIN (Natural) • OUTER JOIN • Left Outer Join • Right Outer Join • Full Outer Join • CROSS JOIN • Ejemplos de Left, Right y Full Join • CONCEPTOS AVANZADOS MISCELÁNEOS • SELF JOIN • PRODUCT • SQL PLUS • FUNCIONES DE SQL • Date & Time • Numeric • String • Conversion • VIEWS • EJERCICIOS DE PRÁCTICA

  3. UNIÓN DE DOS O MÁS TABLAS Volver a los Objetivos

  4. Haciendo Consultas de Múltiples Tablas • Cuando hacemos consultas de más de una tabla, estas tienen que unirse (Join). • Se unen (join) las tablas al encontrar columnas que pareen (match) los datos. • Las tablas que se unen suelen utilizar una condición con la cláusula WHERE que limitan la cantidad de filas que se van a mostrar.

  5. Unión (Joining) de Dos Tablas • En la clausula SELECT se listan todas las columnas que se desean mostrar. • En la clausula FROM se listan todas las tablas a las que se les hace referencia en el query. • En la clausula WHERE se mencionan las filas que tienen valores comunes de acuerdo a ciertas columnas.

  6. Ejemplo Unión de dos Tablas

  7. Segundo Ejemplo (condición AND)

  8. Tercer Ejemplo (WHERE y ORDER BY)

  9. Uniendo ORDER con PART

  10. UTILIZANDO ESTE ERD DEL LIBRO DE TEXTO

  11. Cuatro tablas se utilizan para este join Cada par de tablas requieren una condición de cotejo en la cláusula WHERE en donde se parean los Primary Keys con los Foreign Keys Otro Ejemplo de Unión de Multiples Tablas • Muestra toda la información necesária para crear un invoice para la orden número 1006 SELECT CUSTOMER_T.CUSTOMER_ID, CUSTOMER_NAME, CUSTOMER_ADDRESS, CITY, SATE, POSTAL_CODE, ORDER_T.ORDER_ID, ORDER_DATE, QUANTITY, PRODUCT_DESCRIPTION, STANDARD_PRICE, (QUANTITY * UNIT_PRICE) FROM CUSTOMER_T, ORDER_T, ORDER_LINE_T, PRODUCT_T WHERE CUSTOMER_T.CUSTOMER_ID = ORDER_LINE.CUSTOMER_ID AND ORDER_T.ORDER_ID = ORDER_LINE_T.ORDER_ID AND ORDER_LINE_T.PRODUCT_ID = PRODUCT_PRODUCT_ID AND ORDER_T.ORDER_ID = 1006; Pag: 340

  12. De la tabla CUSTOMER_T De la tabla PRODUCT_T De la tabla ORDER_T Figure 8-2 El resultado que se obtiene al buscar entre las cuatro tablas Pag: 340

  13. JOIN, IN, EXITS Volver a los Objetivos

  14. Haciendo JOIN con IN y EXISTS • Las tablas pueden ser unidas utilizando las clausulas IN o EXISTS • Utilice el operador IN dentro de un sub-query • Utilice el operador EXISTS para obtener datos de más de una tabla

  15. Restrición al Unir (Join) Tablas (sin usar el IN)

  16. Restrición al Unir (Join) Tablas (utilizando el IN) Se obtiene el mismo resultado, sin embargo en este ejemplo no se coteja directamente el PK de una tabla contra el FK de la otra.

  17. Uso del operador IN para obtener información de una orden Pag: 341

  18. Uso del operador EXISTS para obtener información de una orden En el próximo slide se comparan ambos formatos. Pag: 343

  19. Comparación IN y EXITS Se obtiene el mismo resultado,

  20. UNIENDO MÚLTIPLES TABLAS Volver a los Objetivos

  21. Uniendo (Join) Múltiples Tablas • Las condiciones muestran como las columnas se relacionan por cada dos tablas

  22. Uniendo Múltiples Tablas Paso a Paso - 1 • En la clausula SELECT hay que nombrar todas las columnas que queremos mostrar • Cualificar el nombre de la columna si hace falta (alias) • En la clausula FROM, nombrar todas las tablas afectadas • Incluir las tablas que se utilizan en la cláusula WHERE (definidas en el FROM), aún si no se mencionan en la cláusula SELECT

  23. Uniendo Múltiples Tablas Paso a Paso - 2 • Tomar un par de tablas y relacionarlas • Indicar en la cláusula WHERE, la condición que relaciona las tablas • Unir (Join) las condiciones con el operador AND • Incluir cualquier condición adicional en la cláusula WHERE • Conectarlas con el operador AND

  24. Ejemplo

  25. RELATIONAL SET OPERATORS Volver a los Objetivos

  26. SET OPERATIONS • SET OPERATIONS - Se utilizan para fomar la unión (union), intersección, (intersection) o diferencias (differences ) de dos tablas. • UNION – Une dos tablas que contienen cada fila que está en la primera tabla, en la segunda tabla o en ambas. No duplica aquellas filas que se encuentren en ambas tablas.

  27. SET OPERATIONS • INTERSECT – Muestratodas las filas que se duplican en ambas tablas únicamente. • MINUS – Muestratodas las filas que están en la primera tabla, pero que no aparecen en la segunda tabla.

  28. RESTRICCIONES A LOS SET OPERATIONS • Requiere que las tablas sean compatibles en su unión. • Deben tener el mismo número de columnas Y • Sus correspondientes columnas deben tener los mismos tipos de datos y el mismo largo.

  29. UNION • Ejemplo en una consulta: SELECT cus_lname, cus_fname, cus_initial, cus_areacode, cus_phone FROM customer UNION SELECT cus_lname, cus_fname, cus_initial, cus_areacode, cus_phone FROM customer_2; Pag: 346

  30. EJEMPLO DE UNION Une dos tablas que contienen cada fila que está en la primera tabla, en la segunda tabla o en ambas. No duplica aquellas filas que se encuentren en ambas tablas cvc cvc cvc cvc UNION descarta las filas repetidas. Una tabla tiene 10 filas y la otra 7, pero al final se crean solo 15 porque hay dos repetidas. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

  31. UNION ALL • Incluye las filas duplicadas. Ejemplo: SELECT cus_lname, cus_fname, cus_initial, cus_areacode, cus_phoneFROM customer UNION ALL SELECT cus_lname, cus_fname, cus_initial, cus_areacode, cus_phoneFROM customer_2; Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

  32. UNION ALL (continuación) UNION ALL incluye lad 17 filas producto de la primera tabla de 10 y la segunda de 7. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

  33. INTERSECT Muestratodas las filas que se duplican en ambas tablas únicamente. Se explica en el próximo slide. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

  34. INTERSECT con DISTINCT Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

  35. MINUS Muestratodas las filas que están en la primera tabla, pero que no aparecen en la segunda tabla. Se explica en el próximo slide. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

  36. MINUS con DISTINCT Muestratodas las filas que están en la primera tabla, pero que no aparecen en la segunda tabla. Ninguno de estos códigos está en la tabla INVOICE Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

  37. JOIN OPERATORS Volver a los Objetivos

  38. DIFERENTES TIPOS DE JOINS - 1 • Join – Una operación relacional que causa que dos o más tablas con un dominio común se combinen en una sola tabla o view. • Equi-join – Una unión en donde la condición de unión se basa en igualdades entre valores en las columnas comunes. Las columnas comunes aparecen redundantemente en el resultado. • Natural join – Es un Equi-join en el cual una de las columnas duplicadas se elimina en el resultado. Pag: 335 Pag: 336

  39. DIFERENTES TIPOS DE JOINS - 2 • Outer join – Una unión en donde las filas que no tienen valores que pareen en columnas comunes se incluyen como quiera en el resultado (lo opuesto a inner join en donde las filas deben tener valores que pareen para que puedan aparecer en el resultado) • Union join – Incluye todas las columnas de cada tabla en la union y una instancia de cada fila de cada tabla. Pag: 337 Pag: 339 Las columnas comunes en las tablas que se unen son usualmente el primary key de la tabla dominante y el foreign key de la tabla dependiente en relaciones uno a muchos

  40. SQL Join Operators - RESUMEN Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

  41. SPECIAL OPERATIONS • Inner Join • Una unión que compara las tablas en la cláusula FROM y muestra aquellas filas que satisfagan la condición en la clausula WHERE • Outer Join • Una unión que muestra todas filas de una de las tablas independientemente del par • Cross Join • Una unión que muestra todas filas de una tabla multiplicada por la combinación de la otra tabla.

  42. INNER JOIN

  43. UTILIZANDO ESTE ERD DEL LIBRO DE TEXTO

  44. Y LA FIGURA 8-1 QUE MUESTRA ESTOS DATOS DE CUSTOMER y ORDER

  45. Join implica dos o más tablas en el FROM La cláusula ON ejecuta el cotejo de igualdad para columnas comunes de las dos tablas. Ejemplo de Natural Join (Fig 8-1) • Por cada cliente que puso una orden, ¿Cuál es su nombre y el número de la orden? SELECT CUSTOMER_T.CUSTOMER_ID, CUSTOMER_NAME, ORDER_ID FROM CUSTOMER_T NATURAL JOIN ORDER_T ON CUSTOMER_T.CUSTOMER_ID = ORDER_T.CUSTOMER_ID; Nota: En la Fig. 1, se ve que solo 10 clientes tienen ordenes emitidas  Sólo 10 filas deben devolverse de este INNER join. Pag: 336

  46. Otro Ejemplo de Natural Join Nota: Curiosamente no incluye la directiva ON Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

  47. JOIN USING Clause La cláusula USING permite hacer las conexiones entre las relaciones de las tablas afectadas Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

  48. JOIN ON Clause Similar al JOIN del libro de texto que se explicó de la fig 8-1. Observe que la cláusula ON requiere comparar el Primary Key de una tabla contra el Foreign Key de la otra. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

  49. OUTER JOIN

  50. Outer Joins • Devuelven no solamente las filas que parean, sino también las filas con atributos que no parean ya sea de una tabla o de ambas. • Hay tres tipos: • Left outer join: Todas las filas de la tabla de la izquierda (la primera que se menciona en el query) se parean con las filas de la tabla a la derecha. Estas son las que se van a incluir. • Right outer join: Todas las filas de la tabla de la derecha (la segunda que se menciona en el query) se parean con las filas de la tabla a la izquierda. Estas son las que se van a incluir. • Full outer join: Todas las filas de ambas tablas se van a incluir independientemente del pareo. Database Systems: Design, Implementation, & Management, 7th Edition, Rob & Coronel

More Related