Material del curso de SQL de la UNACAR 2020
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.6 KiB

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)