|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- # Operadores de conjuntos
-
- 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.
-
- 
-
- ## UNION y UNION ALL
-
- Esete operador permite unir o sumar dos conjuntos de datos.
-
- *Sintaxis*
-
- ```
- SELECT campo from tabla
- UNION
- SELECT otrocampo from otratabla
- ```
-
- 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.
-
- 
-
- En las operaciones de conjuntos equivale, el ejemplo anterior equivale a
- A ∪ B.
-
- ### Implementación
-
- *Sintaxis*
-
- ```
- select id from categorias c
- union
- select id from productos p
- ```
-
-
- 
-
- 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.
-
- ## INTERSECT
-
- 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.
-
- 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.
-
-
- 
-
- *Sintaxis*
-
- ```
- SELECT campo from tabla
- INTERSECT
- SELECT otrocampo from otratabla
- ```
-
- 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
-
- *Sintaxis*
-
- ```
- SELECT campo from tabla
- WHERE campo IN
- (SELECT otrocampo from otratabla)
- ```
-
- ### Implementación
-
- *Sintaxis*
-
- ```
- select id from tabla1
- where id in (select id from tabla2)
- ```
-
-
- # EXCEPT
-
- Toma dos consultas y genera una salida con los registros que se encuentren en la primera pero que no se encuentren en la segunda.
-
- Si UNION equivale a una suma de conjuntos, EXCEPT equivaldría a una resta en terminos generales se escribe como.
-
-
- 
-
- *Sintaxis*
-
- ```
- SELECT campo from tabla
- EXCEPT
- SELECT otrocampo from otratabla
- ```
-
- 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
-
- *Sintaxis*
-
- ```
- SELECT campo from tabla
- WHERE campo NOT IN
- (SELECT otrocampo from otratabla)
- ```
|