Material del curso de SQL de la UNACAR 2020
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

conjuntos.md 2.6 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. # Operadores de conjuntos
  2. En sql se pueden tomar dos conjuntos de datos y hacer operaciones de conjuntos como union, interseccion o resta, para ello se utiliza loq ue se conoce como operadores de conjunto y existen varios de ellos. Haremos una revision general.
  3. ![](assets/20220105_030256_1.png)
  4. ## UNION y UNION ALL
  5. Esete operador permite unir o sumar dos conjuntos de datos.
  6. *Sintaxis*
  7. ```
  8. SELECT campo from tabla
  9. UNION
  10. SELECT otrocampo from otratabla
  11. ```
  12. Esta unión se puede hacer de dos tablas diferentes, con la única condición de que el número de campos y tipos de datos sean compatibles entre un SELECT y el otro.
  13. ![](assets/20220116_173701_Circle1.png)
  14. En las operaciones de conjuntos equivale, el ejemplo anterior equivale a
  15. A ∪ B.
  16. ### Implementación
  17. *Sintaxis*
  18. ```
  19. select id from categorias c
  20. union
  21. select id from productos p
  22. ```
  23. ![](assets/20220116_173735_word-image-416.png)
  24. Además, se puede hacer una diferenciación entre UNION y un UNION ALL permitiendo o no duplicados que además influye en el tiempo o número de registros que regresa cada uno de ellos, pero en general se trata de la unión de conjuntos.
  25. ## INTERSECT
  26. Toma dos consultas de entrada (mismo número de campos y tipos de datos compatibles) y genera una salida con los registros que están en ambas entradas.
  27. En las operaciones de conjuntos tradicionales, la intersección de A y B se denota como A ∩ B y se codifica en términos generales como.
  28. ![](assets/20220116_174156_word-image-419.png)
  29. *Sintaxis*
  30. ```
  31. SELECT campo from tabla
  32. INTERSECT
  33. SELECT otrocampo from otratabla
  34. ```
  35. En mysql no se encuentra la instruccion except en algunos otros dbms se utiliza minus en mysql se suele usar para esta tarea NOT IN, NOT EXIST o inluso con un LEFT OUTER JOIN
  36. *Sintaxis*
  37. ```
  38. SELECT campo from tabla
  39. WHERE campo IN
  40. (SELECT otrocampo from otratabla)
  41. ```
  42. ### Implementación
  43. *Sintaxis*
  44. ```
  45. select id from tabla1
  46. where id in (select id from tabla2)
  47. ```
  48. # EXCEPT
  49. Toma dos consultas y genera una salida con los registros que se encuentren en la primera pero que no se encuentren en la segunda.
  50. Si UNION equivale a una suma de conjuntos, EXCEPT equivaldría a una resta en terminos generales se escribe como.
  51. ![](assets/20220116_174115_Circle2.png)
  52. *Sintaxis*
  53. ```
  54. SELECT campo from tabla
  55. EXCEPT
  56. SELECT otrocampo from otratabla
  57. ```
  58. En mysql no se encuentra la instruccion except en algunos otros dbms se utiliza minus en mysql se suele usar para esta tarea NOT IN, NOT EXIST o inluso con un LEFT OUTER JOIN
  59. *Sintaxis*
  60. ```
  61. SELECT campo from tabla
  62. WHERE campo NOT IN
  63. (SELECT otrocampo from otratabla)
  64. ```