Está en la página 1de 10

Teoría de Conjuntos 

Aplicada a SQL
● El concepto de conjunto es intuitivo y se 
podría definir como una "colección de 
objetos"
● Un conjunto está bien definido si se sabe si 
un determinado elemento pertenece o no al 
conjunto
Teoría de Conjuntos 
Aplicada a SQL
● Operaciones:
– Unión (union)
– Intersección (join)
– Diferencia (left join)
– Complemento (right join)
Teoría de Conjuntos 
Aplicada a SQL
● Unión (union)
– Para cada par de conjuntos T1 y T2 existe una 
selección que contiene todos los elementos de T1 y T2.
select campo1,campo2 
from T1
UNION
select campoJ,campoN 
from T2
Teoría de Conjuntos 
Aplicada a SQL
● Intersección (join)
– Los elementos comunes a T1 y T2 forman un conjunto 
denominado intersección de T1 y T2.
select 
  T1.campo1
 ,T2.campoJ 
from T1
JOIN T2
ON T1.campo2 = T2.campoN
Teoría de Conjuntos 
Aplicada a SQL
● Diferencia (left join)
– Los elementos de un conjunto T1 que no se encuentran en otro 
conjunto T2
select T1.campo1
      ,T2.campoJ 
from T1
JOIN T2
ON T1.campo2 = T2.campoN
where
   T2.campoN = null 
Teoría de Conjuntos 
Aplicada a SQL
● Complemento (right join)
– Los elementos de un conjunto T1 que no se encuentran en otro 
conjunto T2
select T1.campo1
      ,T2.campoJ 
from T1
JOIN T2
ON T1.campo2 = T2.campoN
where
   T1.campo2 = null 
SELECT
Uso de Case
● Case: Un método flexible para la agrupación de datos.
Sintaxis: 
CASE WHEN <cond1> THEN <Value1>
     WHEN <cond2> THEN <Value2>
     [ELSE Value n ] END
SELECT
Uso de Case
Ejemplo:
 SELECT CASE WHEN sal>1000 THEN 'Over paid'
             ELSE 'Under paid' END
 FROM   emp;

 SELECT SUM(CASE WHEN SUM(amount) BETWEEN 0 AND 49 THEN 1 
            ELSE 0 END) AS "0­49",
        SUM(CASE WHEN SUM(amount) BETWEEN 50 AND 100
           THEN 1 ELSE 0 END) AS "50­100"
 FROM sales;
SELECT
Uso de DECODE
● DECODE: retorna diferente valores basado en el 
contenido de una columna o expresión
Sintaxis:
decode(expression, search1, return1,
         [search2, return2]...
         [default] )
SELECT
Uso de DECODE
Ejemplo:
SET SERVEROUTPUT ON;

DECLARE

   sexo char(1);

   res  varchar2(20);

BEGIN

  sexo:= 'M';

  select decode(sexo,'M','Masculino'

                    ,'F','Femenino','Desconocido') into res

  from dual;

  dbms_output.put_line (res);

END;

También podría gustarte