Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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 "049",
SUM(CASE WHEN SUM(amount) BETWEEN 50 AND 100
THEN 1 ELSE 0 END) AS "50100"
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;