Algunas consultas en base de datos.
Enviado por Eric • 20 de Abril de 2018 • 863 Palabras (4 Páginas) • 444 Visitas
...
la diferencia de 2 conjuntos de valores. Por
ejemplo:
listar los nombres de pila de empleados que no se encuentran en los de los
dependientes.
SELECT nombrep
FROM compania.empleado
EXCEPT
(SELECT nombrep
FROM compania.empleado
INTERSECT
SELECT nombre_dependiente
FROM compania.dependiente);
9.
Obtener los nombres de los empleados que no tienen dependientes:
SELECT nombrep, apellido
FROM compania.empleado
WHERE
nss NOT IN
(SELECT DISTINCT nss
FROM compania.empleado, compania.dependiente
WHERE nsse=nss);
10.
Las clausulas EXISTS y NOT EXISTS de
vuelven un valor de ’verdadero’
si una
subconsulta
devuelve o no cuando menos un registro.
La consulta anterior pero con el
operador NOT EXISTS
.
SELECT nombrep, apellido
FROM compania.empleado
WHERE NOT EXISTS
(SELECT *
FROM compania.dependiente
WHERE nss = nsse);
11.
La misma consulta pero usando un EXCEPT (diferencia)
. Nótese el uso de DISTINCT.
SELECT nombrep,apellido
FROM compania.empleado
EXCEPT
SELECT DISTINCT nombrep, apellido
FROM
compania.empleado, compania.dependiente
WHERE
nsse=nss;
12.
Obtener los nombres de los gerentes que tienen por lo menos un dependiente.
SELECT nombrep, apellido
FROM compania.empleado
WHERE EXISTS
(SELECT *
FROM compania.dependiente
WHERE
nss = nsse)
AND
EXISTS
(SELECT *
FROM compania.departamento
WHERE nss = nssgte);
13.
Para cada departament
o que tenga más de 3 empleados,
obtener el nombre del
departamento y el
número de empleados que
ganan má
s de
25
,000.
SELECT
nombred, COUNT(*)
FROM
compania.departamento, compania.empleado
WHERE
numerod=nd AND salario>
25
000 AND
nd IN
(SELECT nd
FROM compania.empleado
GROUP BY
nd
HAVING COUNT(*)>3)
GROUP BY nombred;
14.
Seleccionar los
nú
meros del seguro social de t
odos los empleados que trabajan
para la
misma combinaci
ó
n (horas, proyecto) en alg
ún proyecto
en el
que trabaja
CARMEN
CORONA
. Nótese como la cláusula
WHERE compara dos conjuntos.
SELECT DISTINCT nsse
FROM compania.trabaja_en
WHERE (nump,horas) IN
(SELECT nump, horas
FROM compania.trabaja_en, compania.empleado
WHERE
nss=nsse AND nombre
p=’CARMEN’
AND apellido=’CORONA’);
15.
Hemos visto que las reuniones nos
permiten
recuperar informació
n
relacionada entre dos
tablas, a partir de una
llave primaria y una llave forá
nea. Sin embargo,
¿Qué pasa cuando
tenemos una rel
ació
...