Anda di halaman 1dari 12

SUBCONSULTAS Y

OPERADORES SET

SUBCONSULTAS

Que empleado tiene un salario superior al de Kevin


Consulta Principal.
Que empleado tiene un salario superior al salario
de Kevin

Subconbsulta
Cual es el salario de kevin

Subconsultas

Se puede poner las subconsulta en algunas de estas clausulas de


un comando SQL:

Clausula WHERE

Clausula HAVING

Clausula FROM

SINTAXIS DE UNA SUBCONSULTA

La subconsulta se ejecuta una vez y antes de la consulta


principal.

El resultado de ella es usado por la consulta principal externa.

Uso de Subconsultas
Encierre

las subconsultas entre parntesis.

No

aada una clusula ORDER BY a una


subconsulta.

Utilice

operadores a nivel de fila para


subconsultas que devuelvan solo una fila
MONOREGISTRO.

Utilice

operadores que actan sobre varios


registros para subconsultas que devueven ms
de una fila MULTIREGISTRO.

Visualice los empleados


que tienen el mismo
oficio que el empleado
que
tiene
como
ID_EMPLOYEE 177

Averiguar
qu
empleados ganan
un salario igual a
cualquier de los
mnimos
por
departamento.

SELECT FIRST_NAME, SALARY,


DEPARTMENT_ID
FROM EMPLOYEES
WHERE SALARY IN (select min(salary)
from employees
group by department_id);

Hasta ahora, ha escrito


subconsultas monoregistro y multi-registro,
en las que slo una
columna era comparada
en la clausula WHERE O
HAVING. Si quieres
comparar dos o mas
columnas, habr de
escribir un clausula
WHERE compuesta que
utilice operadores lgicos.
Las subconsultas multicolumna, le permitirn
transformar diferentes
condiciones WHERE en

Visualizar el nombre, numero de departamento,


salario y comisin de cualquier empleado cuyo salario
y comisin se corresponda (ambos) con la comisin y
salario de cualquier empleado del departamento 80;
select first_name,department_id, salary, commission_pct
from employees
where (salary,nvl(commission_pct,0)) in
(
select salary, nvl(commission_pct,0)
from employees
where department_id=80
)

Operadores SET

La lgica de estos tipos de operadores nace de la


teora de conjuntos.

Permite unir dos o mas consultas en una sola.

Cada consulta debe retornar la misma cantidad de


columnas y del mismo tipo de dato.

No importa si el nombre de las columna son


diferentes, siempre se muestran los nombres de la
primera consulta..

No importa la cantidad de registros retornados.

Puede utilizar la clusula ORDER BY o LIMIT, al final de


la ultima consulta, esto afecta a todo el resultado.

Tipos de operadores de conjuntos

MINUS

Usando el operador UNION

Lista los cdigos de cada empleado, con su cargo actual y su historio.

Usando el operador UNION ALL

Lista los cdigos de cada empleado, con su cargo actual y su


historio, siempre y cuando se repitan.

Usando el operador INTERSECT


Lista los cdigos de cada empleado, con su cargo actual y su
historio, siempre y cuando se repitan.

Usando el operador MINUS


Lista los cdigos de cada empleado, con su cargo actual y su historio,
siempre y cuando no existan en la segunda consulta.

Anda mungkin juga menyukai